LINUX.ORG.RU

грузится ядро, которого просто нет о_О


0

1

Люди добрые, поможите... столкнулся вчера с кое-чем странным... обновились сорцы ядра с 3.12.6 до 3.12.8 в генте, как обычно скопировал свой конфиг (.config) из версии 3.12.6 в 3.12.8 (как я это всегда делал, дабы не убирать каждый раз ненужные компоненты, и не прописывать PARTID рут раздела). ядро собрал, как обычно - sudo make && sudo make modules_install && sudo make install (дабы не копировать образ вручную) файлы успешно появились в /boot, наровне с ядром 3.12.6. Как обычно перезагружаюсь, меня встречает rEFInd, но на удивление показывает лишь одно ядро на разделе btrfs (мой /boot) ладно думаю какой-то глюк... гружусь в 3.12.6, всё нормально, делаю emerge --depclean старое ядро удаляется (как известна не сами сорцы, ибо там модифицированный конфиг и скомпилянные модули с ядром, а просто пакет), к слову перед сборкой нового ядра симлинк на /usr/src/linux был перенесен с 3.12.6 на 3.12.8 (в общем всё тривиально и так как всегда делал)

далее удалил папку 3.12.6 из /usr/src/ так же удалил /boot/*-3.12.6-gentoo остались лишь *-3.12.8-gentoo всё как обычно...

перезагружаюсь... rEFInd сообщает что ядро всё еще 3.12.6 ( о_О ) гружусь, uname -r, действительно адро 3.12.6 но откуда?????

удалил /lib/modules/*-3.12.6-* перезагружаюсь, всё тот же 3.12.6 в rEFInd... но теперь убиты все модули ядра, включая вай-фай модуль, так что пишу с венды...

из того что пришло в голову... выкладываю мини-лог:

[~] $ sudo cat /var/log/dmesg | grep 3.12.6
[    0.000000] Linux version 3.12.6-gentoo (root@livecd) (gcc version 4.8.2 (Gentoo 4.8.2 p1.1, pie-0.5.8) ) #1 SMP Fri Dec 27 21:46:24 CET 2013
[    0.000000] Command line: \vmlinuz-3.12.6-gentoo 
[    2.857265] usb usb1: Manufacturer: Linux 3.12.6-gentoo ehci_hcd
[    2.881364] usb usb2: Manufacturer: Linux 3.12.6-gentoo ehci_hcd
[    2.895975] usb usb3: Manufacturer: Linux 3.12.6-gentoo xhci_hcd
[    2.907271] usb usb4: Manufacturer: Linux 3.12.6-gentoo xhci_hcd
[~] $ uname -r                             
3.12.6-gentoo
[~] $ ls -la /boot
total 9105
drwxr-xr-x  3 root root    4096 Jan 17 09:17 .
drwxr-xr-x 21 root root    4096 Dec 28 20:39 ..
-rw-r--r--  1 root root   83886 Jan 16 19:48 config-3.12.8-gentoo
drwxr-xr-x  3 root root    1024 Jan  1  1970 efi
-rw-r--r--  1 root root 2815348 Jan 16 19:48 System.map-3.12.8-gentoo
-rw-r--r--  1 root root 6408816 Jan 16 19:48 vmlinuz-3.12.8-gentoo
[~] $ find / -name vmlinuz-3.12.6-gentoo 2>/dev/null
[~] $ sudo find / -name '*vmlinuz*'
/boot/vmlinuz-3.12.8-gentoo
/usr/src/linux-3.12.8-gentoo/arch/mips/boot/compressed/calc_vmlinuz_load_addr.c
/home/_artem_/android/omni/kernel/lge/mako/arch/mips/boot/compressed/calc_vmlinuz_load_addr.c
[~] $ ls -la /lib/modules/
total 12
drwxr-xr-x 3 root root 4096 Jan 16 19:48 .
drwxr-xr-x 9 root root 4096 Jan 16 18:46 ..
drwxr-xr-x 3 root root 4096 Jan 16 19:48 3.12.8-gentoo
[~] $ ls -la /usr/src/         
total 12
drwxr-xr-x  3 root root 4096 Jan 16 19:07 .
drwxr-xr-x 13 root root 4096 Dec 27 19:47 ..
-rw-r--r--  1 root root    0 Dec 26 03:19 .keep
lrwxrwxrwx  1 root root   19 Jan 16 18:54 linux -> linux-3.12.8-gentoo
drwxr-xr-x 25 root root 4096 Jan 16 19:48 linux-3.12.8-gentoo
[~] $ cat /usr/src/linux/.config | grep 3.12.
# Linux/x86 3.12.8-gentoo Kernel Configuration
[~] $ 

// Linux version 3.12.6-gentoo (root@livecd) - вроде на подобие ядро в установщике, но никакой исо никуда не монтирован (да и не представляю как это сделать в rEFInd), никакая флешка не вставлена, в системе не поменялось абсолютно ничего с момента сборки ядра 3.12.6 - оно нормально грузилось с самой установки генты (в конце декабря вернулся в генту), тем же конфигом был собран 3.12.8 - но с таким сталкиваюсь в первые... раньше rEFInd без проблем подхватывал новое ядро (в меню появлялось еще одно ядро на загрузку)

откуда оно вообще берет 3.12.6 если его физически нет нигде, rEFInd говорит именно что оно находится в btrfs (а это только /boot) - / - не в btrfs - но это тут абсолютно фиолетово... спецом проверил не создало ли что-либо subvolume в /boot - нет... как побороть? и как загрузиться в 3.12.8?

Ответ на: комментарий от rvr

Точно собрано с ефистаб, еще вчера проверил еще раз в make menuconfig и еще раз пересобрал его (не пересобралось ибо никаких изменений не произошло, всё уже было как обычно). Этим же конфигом было собрано 3.12.6 и оно нормально грузилось. Сейчас нужно уйти, как вернусь снесу раздел /boot и снова создам

linux-vo1d
() автор топика
Ответ на: комментарий от rvr

По поводу куда надо — в рефинд в том и прикол, что собираем ядро с ефистаб, кидаем vmlinuz в /boot и оно появляется в меню рефинда, без манипуляций с efimgr , ибо загрузчик именно сам рефинд и он находит сам подходящее ядро (с ефистаб). Но откуда он грузит 3.12.6, если оно физически удалено

linux-vo1d
() автор топика
Ответ на: комментарий от linux-vo1d

ибо загрузчик именно сам рефинд и он находит сам подходящее ядро (с ефистаб)

Если он загрузчик, как GRUB, зачем ему efistub? А если он просто копирует ядро куда надо, чтобы оно само грузилось, а сам в загрузке не участвует, то надо смотреть EFI-раздел, может, оно там где-то лежит.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Он вроде занимается только сканированием директории на предмет загружаемых *.efi и отображением списка найденных

rvr
()

lilo вместо GRUB?

Dron ★★★★★
()
Ответ на: комментарий от rvr

Люди, вы с ним вообще не знакомы походу... ему не нужен .ефи, он сам .ефи и выставлен в «биосе», в менеджере загрузки, как первый, по умолчанию. Можно поставить груб-ефи и сделать его главным, а можно поставить рефинд, который требует именно ядро с поддержкой ефистаб, никакой файл ефи ему не нужен, он подхватывает именно ядро с поддержкой ефистаб. Никогда проблем не было а щас главная проблема заключается в том что ядра .6 уже физически нет ни в /boot ни где бы то ни было еще

linux-vo1d
() автор топика
Ответ на: комментарий от linux-vo1d

Да я понимаю) Я имел в виду, что он сканит на наличие vmLinuz*.efi, initramfs*.efi, если не включена опция scan_all_что-тотам

rvr
()
Ответ на: комментарий от iVS

боже ты мой... вы в каком веке живете-то?! за каким фигом мне сдался grub и grub-efi, если есть rEFInd

«rEFInd is a UEFI Boot Manager which provides a menu for EFISTUB kernels. It is alternative to Gummiboot.»

почему отказался от grub-efi? потому что надоели глюки, которые иногда возникали, плюс сбоила загрузка венды через груб-ефи (опензуся автоматом добавляла в груб меню венду, гента и арч этого не делали). а так я без какого-либо гемороя просто обновляю ядро - кидаю старый конфиг где уже включена поддержка ефистаб + прописаны PARTID (или PARTUID - не помню) (сие для инитрама). и мне больше не приходится держать еще джентулз (или как его там, которым можно генерировать инит рам, что-то вроде gentoolkit --install initramfs (не помню уже точно как это было, давно сижу на рефинде). так вот, я просто компиляю ядро, чтоб вручную не копировать образ, я делаю make install и он сам кидает ядро (vmlinuz-[version]-gentoo в /boot) а я лишь перезагружаюсь и вуаля у меня уже автоматом новое ядро появилось в загрузчике. не нужно делать никакой grub-mkconfig -o /boot/grub/grub.cfg не нужно вообще ничего, собрал ядро, перезагрузился, и пользуешься новым ядром. ----- если вы не знакомы с этим rEFInd'ом и с принципом его работы... то просто подскажите откуда может загружаться ядро, если оно не в /boot находится... dmesg говорит \vmlinuz-3.12.6-gentoo такого файла нет ни в одном разделе вообще. так же нет никаких vmlinuz* кроме тех что в /boot - а там сейчас лишь vmlinuz-3.12.8-gentoo но запустить его никак, так как он не видится в загрузчике, а вместо него видится И ЗАГРУЖАЕТСЯ ядро 3.12.6, которого физически нет нигде

linux-vo1d
() автор топика

Ну хорошо, раз рациональных причин нет, попробуем иррациональные.

Ядро ты в /boot копировал вручную, так? Мог ли ты нечаянно скопировать .6? Может, ты нечаянно скопировал .6 из /boot поверх вновь собранного .8, а потом в /boot под новым именем?

proud_anon ★★★★★
()
Ответ на: комментарий от rvr

не знаю, я всегда собирал ядро (bzImage) на выходе, копировал его под именем linux-[version]-gentoo - перезагружался и всё, он уже был в рефинде, тот сканит все возможные ФС (у меня оставлен лишь драйвер btrfs в рефинде, ибо /boot, где у меня ядра с поддержкой EFISTUB, имеет btrfs в качестве ФС). рефинд автоматом сканит раздел /boot находит там ядро (не ядро.ефи, а самое настоящее ядро, образ, называйте как хотите, такой же как вы загружали в грубе обычном (даже не ефи))... проверяет на поддержку ефистаб, и если она в ядре есть, он показывает его в списке. помимо этого он сканит и раздел $ESP (ефи, fat), где лежит /EFI/Microsoft Bootmanager (или как-то так, это венда), grub-efi там же (в /EFI/) создавал папку gentoo или archlinux... а в /EFI/ у меня /EFI/refind/refind.efi - вот это мой загрузчик, в себе он имеет ВЕНДОЗАГРУЗЧИК + все ядра, которые собраны с поддержкой EFISTUB

linux-vo1d
() автор топика
Ответ на: комментарий от proud_anon

А, я вижу, что имя файла точно другое. Ну что ж, тогда в самом деле чудеса.

proud_anon ★★★★★
()
Ответ на: комментарий от linux-vo1d

«В себе имеет все ядра»? Ну, тогда есть очевидная гипотеза, где лежит удаленное ядро.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

нет, я уже давненько (не первый раз уже так обновляю ядро) обленился и собираю ядро
ls -la /usr/src/
linux -> старое-ядро
старое-ядро
новое-ядро

cp /usr/src/linux/.config /usr/src/новое-ядро
rm /usr/src/linux (удаляю симлинк)
ln -s /usr/src/{новое-ядро,linux}

ls -la /usr/src/
linux -> новое_ядро
старое-ядро
новое-ядро

cd /usr/src/linux
make menuconfig
на всякий пожарный жмякаю LOAD, и жму ENTER, он берет конфиг который я скопировал ранее из предыдущей версии ядра, и этот конфиг работал, потом жму EXIT, он спрашивает сохранить, жму да, снова запускаю
make menuconfig
и смотрю есть ли мои галочки (btrfs в file systems, и ефи стаб в процессоре и мой вписанный когда-то давно PARTID от раздела рут раздела / )
всё на месте, делаю
make && make modules_install && make install

и оно само скидывает всё в /boot

делаю я так еще с середины 3.x
никогда не возникало проблем...
но опять же... ядра 3.12.6 в системе нет абсолютно, но оно откуда-то загружается, хотя его нет

linux-vo1d
() автор топика
Ответ на: комментарий от linux-vo1d

опензуся автоматом добавляла в груб меню венду, гента и арч этого не делали

в генте ставится os-prober, логи полезно порой читать :)

а вместо него видится И ЗАГРУЖАЕТСЯ ядро 3.12.6, которого физически нет нигде

Судя по всему, там багов предостаточно: http://sourceforge.net/p/refit/bugs/ Создаешь ticket и ждешь ответа разработчиков.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Рефит был форкнут в рефинд, где баги с ефи исправлены. Рефинд не обновлял, как я собрал ядро .6и как оно работало и в друг сейчас, ничего не изменилось а новое ядро не видит. И после удаления старого оно откуда то загружается я не пойму откуда, ведь нигде нет файла с версией ядра .6

linux-vo1d
() автор топика
Ответ на: комментарий от linux-vo1d

Проверьте файловую систему /boot, может там какие ошибки.

mky ★★★★★
()
Ответ на: комментарий от DiMoN

решил проблемку до прочтения вашего сообщения ))
хотел было форматнуть раздел /boot, предварительно попытался его отмантировать... и тут я стал подозревать неладное... система ругнулась что /boot не примонтирован...
вы правильно подумали...

только щас запустился в 3.12.8
проблема была в том, что /boot не монтируется при загрузке...
не знаю каким образом но в fstab'е у /boot было прописано noauto о_О откуда оно там взялось я не представляю
но при начале компиляции и после компиляции нового ядра - старое ядро 3.12.6 было в /boot (уже не знаю какого раздела... либо /boot либо / ), и туда же закинулось новое ядро, если раздел /boot был изначально не примонтирован... откуда же в папке boot (раздела /) взялось старое ядро?! ведь я его собирал еще из консоли, когда не было иксов, а там был chroot и ручное монтирование всех разделов, так что изначально ядро попало в раздел именно /boot, но каким образом файлы ядра продублировались в ПАПКУ boot раздела /

а сейчас получается новое ядро 3.12.8 кидалось в папку /boot РАЗДЕЛА / ( /dev/sda9 )
а не в сам раздел /boot ( /dev/sda7 )

а rEFInd как раз таки считывал с /dev/sda7 (так как /boot в btrfs, а / в ext4, а в rEFInd у меня оставлен лишь драйвер btrfs поэтому он и не думал искать в ФС отличных от btrfs... капец. а новое ядро лежало в /dev/sda9/boot (условно так обозначу, папка в разделе / )
а виновата во всём гента, потому что она не умеет изначально форматировать раздел в btrfs посему пришлось рут делать в ext4, ибо мне было лень делать флешку с арчем и им выполнять mkfs.btrfs /dev/sda9 перед началом установки генты... когда раньше был на генте, не поленился арчем разбить разделы. всем спасибо =) впервые такой ляп произошел. в fstab и рут монтируется как ext3 вместо ext4... видимо дефолтный fstab коряво отредактировал при установке. всем спасибо. тему можно закрывать/удалять

[~] $ sudo !!
sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.8

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F8714D99-AFA5-40DB-9303-4CFFC7A48596
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 7533 sectors (3.7 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          616447   300.0 MiB   2700  Basic data partition
   2          616448          821247   100.0 MiB   EF00  EFI system partition
   3          821248         1083391   128.0 MiB   0C01  Microsoft reserved part
   4         1083392       512002047   243.6 GiB   0700  Basic data partition
   5       512002048      1024002047   244.1 GiB   0700  Basic data partition
   6      1024002048      1036287999   5.9 GiB     0700  Basic data partition
   7      1036290048      1036904447   300.0 MiB   EF00  Basic data partition
   8      1036904448      1446504447   195.3 GiB   0700  Basic data partition
   9      1446504448      1548904447   48.8 GiB    0700  primary
  10      1548904448      1953521663   192.9 GiB   0700  Basic data partition
[~] $ sudo fdisk -l 

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: F8714D99-AFA5-40DB-9303-4CFFC7A48596

Device            Start          End   Size Type
/dev/sda1          2048       616447   300M Windows recovery environment
/dev/sda2        616448       821247   100M EFI System
/dev/sda3        821248      1083391   128M Microsoft reserved
/dev/sda4       1083392    512002047 243.6G Microsoft basic data
/dev/sda5     512002048   1024002047 244.1G Microsoft basic data
/dev/sda6    1024002048   1036287999   5.9G Microsoft basic data
/dev/sda7    1036290048   1036904447   300M EFI System
/dev/sda8    1036904448   1446504447 195.3G Microsoft basic data
/dev/sda9    1446504448   1548904447  48.8G Microsoft basic data
/dev/sda10   1548904448   1953521663   193G Microsoft basic data

[~] $ cat /etc/fstab | grep sda
/dev/sda7               /boot           btrfs           noauto,noatime  1 2
/dev/sda2               /boot/efi       vfat            defaults        0 0
/dev/sda9               /               ext3            noatime         0 1
/dev/sda8               /home           btrfs           defaults        0 0
/dev/sda10              /media/data     btrfs           defaults        0 0
[~] $ mount
rootfs on / type rootfs (rw)
PARTUUID=dfe6cf60-ab40-4101-a3d3-11b50c348eb4 on / type ext4 (rw,noatime,commit=0)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,size=3237588k,mode=755)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,nr_inodes=4046635,mode=755)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
cgroup_root on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)
openrc on /sys/fs/cgroup/openrc type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/lib64/rc/sh/cgroup-release-agent.sh,name=openrc)
cpuset on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cpu on /sys/fs/cgroup/cpu type cgroup (rw,nosuid,nodev,noexec,relatime,cpu)
cpuacct on /sys/fs/cgroup/cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct)
freezer on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
/dev/sda8 on /home type btrfs (rw)
/dev/sda10 on /media/data type btrfs (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nodev,noexec,nosuid)
[~] $ blkid
zsh: command not found: blkid
[~] $ sudo !!
sudo blkid
/dev/sda1: LABEL=«Recovery» UUID=«1C400DED400DCE88» TYPE=«ntfs» PARTLABEL=«Basic data partition» PARTUUID=«e7e15596-9973-4f38-a7f8-e1563cd22e2a» 
/dev/sda2: UUID=«FE0F-F58E» TYPE=«vfat» PARTLABEL=«EFI system partition» PARTUUID=«3f51f57a-bbee-4c8c-955a-6cbf82087fb4» 
/dev/sda3: PARTLABEL=«Microsoft reserved partition» PARTUUID=«d50211f2-6868-4693-810e-78aab2540e5b» 
/dev/sda4: UUID=«667212AE721282CB» TYPE=«ntfs» PARTLABEL=«Basic data partition» PARTUUID=«faf1022f-94f3-4b19-8bed-71b55b3d958f» 
/dev/sda5: UUID=«5CFACBB7FACB8BA8» TYPE=«ntfs» PARTLABEL=«Basic data partition» PARTUUID=«edeefb6b-83ea-447a-90de-c43824f06927» 
/dev/sda6: UUID=«20A6697CA66952F8» TYPE=«ntfs» PARTLABEL=«Basic data partition» PARTUUID=«465e9041-9690-4ea9-ad54-a41cf8fe27d8» 
/dev/sda7: UUID=«61dc6ee5-601b-4a15-bcf8-b3b25e74577d» UUID_SUB=«35f82420-6627-4316-baad-eb63af90ea69» TYPE=«btrfs» PARTLABEL=«Basic data partition» PARTUUID=«04d9c8e6-622a-4ebe-9d3a-8d4ca40c9818» 
/dev/sda8: UUID=«92bf4737-b35b-4bf5-9734-f96ee3c16f49» UUID_SUB=«499636ca-50cc-46e3-b80d-ea25917e740b» TYPE=«btrfs» PARTLABEL=«Basic data partition» PARTUUID=«460f5831-0633-43ba-927d-616fa77ad957» 
/dev/sda9: UUID=«62adadc5-43d3-4b49-b81b-0bf7631adad5» TYPE=«ext4» PARTLABEL=«primary» PARTUUID=«dfe6cf60-ab40-4101-a3d3-11b50c348eb4» 
/dev/sda10: UUID=«6778e8d6-c953-4f52-82bc-984ef78f558a» UUID_SUB=«fd0268d4-40a0-4003-ad4d-24ec94077a8b» TYPE=«btrfs» PARTLABEL=«Basic data partition» PARTUUID=«3dcb5f84-331e-4a25-ac8b-6618f057b4e8» 
[~] $ 

linux-vo1d
() автор топика

Ну и чехарда приключилась :) Поэтому загрузчик никогда не ставлю автоматом при установке дистров

rvr
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.