[Solved] Порядок действий при переходе на libata

Отсиживаясь за make silentoldconfig я долгое время не замечал того, что поддержка IDE оказывается уже deprecated.

Ну и начал лениво размышлять на предмет переезда на современное решение.
Прошу проверить мою логику.
Предполагаю делать так:
1. make menuconfig, включение поддержки libata.
2. Перезагрузка с новым ядром. Должны появиться новые устройства.
Исправление /etc/fstab, перемонтирование разделов.
Проверка.
3. Пересборка ядра с отключением поддержки IDE.
4. Окончательная перезагрузка.

Или я где-то ошибаюсь?

Возможно, во втором

Возможно, во втором пункте.
Новые устройства (sdx) вероятно не появятся, так как всё равно будут использоваться старые драйвера.

Вот так

1. make menuconfig, включение поддержки libata и scsi и отключение поддержки ide - и притом для твоего чипа в ядро, не модулем (если не уверен - включай все что похожее на твой чип - потом по lspci -v посмотриш какой модуль используется, пересобереш ядро только с ним, ну чтоб лишнего не тянуть...)
2. Исправление /etc/fstab - и не забываем, что если только один HDD у тебя - то пофиг как он подключен (primary/secondary master/slave) - он все равно будет sda. Привод CD-ROM будет sr0.
Логично что если на втором контроллере (или на первом но slave режим у винта) - то винт будет sdb - ну и так далее, надеюсь понятно...
3. Опционально - исправление файлов конфигов в которых нагло указывается дисковые устройства (S.M.A.R.T. демон к примеру)
4. Исправление /boot/grub/grub.conf
5. # reboot

.

Agressor написал(а):
1. make menuconfig, включение поддержки libata и scsi и отключение поддержки ide - и притом для твоего чипа в ядро, не модулем (если не уверен - включай все что похожее на твой чип - потом по lspci -v посмотриш какой модуль используется, пересобереш ядро только с ним, ну чтоб лишнего не тянуть...)

Включать всё статично: в смысле - из подменю libata?
Поддержка scsi есть (в первую очередь для USB flash drive).

:wq
--
Live free or die

fstab изначально лучше по

fstab изначально лучше по линкам от udev настроить - чтоб не думать что куда слетело

можно узнать а как оное

можно узнать а как оное выглядит? а то ни разу в жизни ни зрел :)

скрытный секс :)

это по

это по меткам

/dev/disk/by-label/gentoo_boot      /boot                   ext2            noauto,noatime  1 1
#/dev/disk/by-label/gentoo_swap     none                    swap            pri=10,sw       0 0
/dev/disk/by-label/gentoo_root      /                       reiserfs        noatime,notail  1 1

Не могли бы Вы

Не могли бы Вы аргументировать это предложение (исходя из моего опыта: имеет смысл если часто играться с перестановкой жёстких дисков)?

И ещё я прошу Вас пояснить каким образом получается /dev/disk/by-label/, у меня в /dev/disk/ только by-id/, by-path/ и by-uuid/.

:wq
--
Live free or die

ну, я говорил вцелом о

ну, я говорил вцелом о /dev/disk/ можно поюзать например uuid.
а by-label если всмотрется в название получается когда у диска есть метка - она туда и записывается. но нужно быть осторожнее с одинаковыми метками - линк будет на одно устройство из двух.

в /etc/fstab можно

в /etc/fstab можно монтирование по UUID прописать - тогда пофиг будет - sda, hda... в grub.conf только придется root=/dev/sda указать.

P.S.: Linux - это красная таблетка :-) Windows - синяя...

.

Aladdin написал(а):
в /etc/fstab можно монтирование по UUID прописать - тогда пофиг будет - sda, hda... в grub.conf только придется root=/dev/sda указать.

1. По label мнемоничнее.
2. Невозможно по причине

$ eix sys-boot/grub
* sys-boot/grub
     Available versions:  0.92-r1 0.94-r1 0.96-r1 0.96-r2 ~0.96-r3 ~0.97 0.97-r2 0.97-r3 0.97-r4 0.97-r5 0.97-r6 ~0.97-r8 **1.96 {custom-cflags ncurses netboot static}
     Homepage:            http://www.gnu.org/software/grub/
     Description:         GNU GRUB 2 boot loader

* sys-boot/grub-static
     Available versions:  ~0.96-r1 ~0.97 ~0.97-r6
     Homepage:            http://www.gnu.org/software/grub/
     Description:         GNU GRUB Legacy boot loader (static build)

;)

:wq
--
Live free or die

Не придётся

Цитата:
только придется root=/dev/sda указать.

Не придётся. Если собирать ядро genkernel-ом, то можно и grub настроить на UUID или LABEL:

title Gentoo Linux 2.6.27
root (hd0,1)
kernel /boot/kernel-genkernel-x86-2.6.27-gentoo root=/dev/ram0 \
real_root=UUID=70048cce-d361-45f4-8009-ba06477bf438 \
video=uvesafb:ywrap,mttr,1280x1024-32@60 \
splash=verbose,theme:livecd-2007.0 console=tty1
initrd /boot/initramfs-genkernel-x86-2.6.27-gentoo

P.S. Если кто-то скажет, что предпочитает собирать всё ручками (а не генкернелом) - то man gekernel и вперёд:
genkernel --disklabel --menuconfig --no-clean --splash-res=1280x1024 --splash=livecd-2007.0 all

Исправил /etc/fstab

Исправил /etc/fstab
С

/dev/hda3              /boot           ext2            noauto,noatime  1 2
/dev/hda5              /               reiserfs        noatime         0 1
/dev/hda2              none            swap            sw              0 0
/dev/hda6              /usr            reiserfs        noatime         0 1
/dev/hda7              /var            reiserfs        noatime         0 1
/dev/hda8              /home           reiserfs        noatime         0 1

на

/dev/disk/by-uuid/a82fb0e1-f826-4709-abaa-471214fc299c          /boot           ext2            noauto,noatime  1 2
/dev/disk/by-uuid/c1ff7df0-520d-4276-bafa-68a7900099be          /               reiserfs        noatime         0 1
/dev/disk/by-uuid/f8cd733e-76c7-458d-a2f6-75d6b1af2020          none            swap            sw              0 0
/dev/disk/by-uuid/670b52c9-7f41-4665-92be-1b040a6ac032          /usr            reiserfs        noatime         0 1
/dev/disk/by-uuid/d5b788e0-7de9-4edd-b2ba-f57b2135e0ee          /var            reiserfs        noatime         0 1
/dev/disk/by-uuid/8c6072fc-93b9-4d82-ab88-3a6a7f424a2f          /home           reiserfs        noatime         0 1

Пробую пересобирать ядро.
В секции Device Drivers -> ATA/ATAPI/MFM/RLL support (ничего более похожего на IDE не нашёл. В это секции только одно явное упоминание IDE в контексте 'DEPRECATED'
[ ] Probe IDE PCI devices in the PCI bus order (DEPRECATED)

Дальше будем посмотреть.

ЗЫ: Сам дурак. В соседней теме тов. Agressor подсказывает

Цитата:
Выбрасываем весь раздел где Device Drivers -> ATA/ATAPI/MFM/RLL Support (вообще он не надо!)
И включаем SCSI device support -> SCSI device support & SCSI disk support (только не модулем, а прямо в ядро) и там же SCSI CDROM support (это уже модулем)
Затем вкл. Serial ATA (prod) and Parallel ATA - здесь тоже все в ядро, не модулем, смотрим какой у нас чип контроллера...

ЗЗЫ: Serial ATA (prod) and Parallel ATA (experimental) drivers --->
Причём для моего случая (SIS5513: IDE controller так оно и написано: SiS PATA support (Experimental)

Вывод: поиграюсь потом.

:wq
--
Live free or die

К версии ядра ~2.6.28--2.6.29

К версии ядра ~2.6.28--2.6.29 появилась наконец поддержка требуемого чипсета.
К версии 2.6.30 я сподобился заняться задачей вплотную.

Как справделиво отметил тов. winterheart, если в ядре включена поддержка и в режиме IDE, и в режиме libata, используется IDE.

В процессе отработки выяснилось, что мой любимый загрузчик (lilo) пишет имя устройство в явном виде ({h,s}da), uuid'ы остаются в конфиге.
Отсюда очевидное и не слишком весёлое следствие: при использовании lilo одновременная загрузка (в смысле наличие в меню двух ядер разной конфигурации) в режиме IDE и libata невозможно.
Решение --- загрузка с live CD, который определяет контроллер в режиме libata.
Июньский Gentoo mini live install CD мой чипсет в режиме libata не держит, с sysrescuecd прогнозируется тоже.
Менять загрузчик не хочется.

Жду следующей итерации.

:wq
--
Live free or die

А чем lilo лучше чем

А чем lilo лучше чем grub?
afair, он хуже как минимум тем, что не после изменения конфига, нужно заново его писать в mbr

а лучше как минимум тем что

а лучше как минимум тем что целиком влазит в этот самый MBR

Еще он хорош тем. что

Еще он хорош тем. что работает в любых дисковых окружениях, хоть пятнадцать рейдов друг на друге =).

он может грузить ядро с

он может грузить ядро с полуаппаратного рейда?
PS grub конечно тоже не может

Да. Оно хранит адреса ядра.

Да. Оно хранит адреса ядра. Если ядро будет разбито по нескольким физическим дискам - не уверен (может просто размера MBR не хватить, все куски запоминать), но на одном точно сможет.

А ещё никто не отменял

А ещё никто не отменял поговорки "от добра добра не ищут".

:wq
--
Live free or die

/

Anarchist написал(а):
В процессе отработки выяснилось, что мой любимый загрузчик (lilo) пишет имя устройство в явном виде ({h,s}da), uuid'ы остаются в конфиге.
Отсюда очевидное и не слишком весёлое следствие: при использовании lilo одновременная загрузка (в смысле наличие в меню двух ядер разной конфигурации) в режиме IDE и libata невозможно.
Решение --- загрузка с live CD, который определяет контроллер в режиме libata.
Июньский Gentoo mini live install CD мой чипсет в режиме libata не держит, с sysrescuecd прогнозируется тоже.

Подтверждаю.
Дома система стоит на sata-диске, но есть и два IDE. libata сначала считает IDE, потом SATA.

Решение: собрать ядро с выключенной поддержкой IDE. Переписать загрузчик, попытаться загрузиться (попытка закономерно завершается kernel-panic, потому как загрузчик, нужно для проверки правильности определения дисков).
Загрузка с systemrescuecd-1.5.8
Монтирование (разделы диска, /proc, /dev), chroot, переписать загрузчик.
Всё.
Можно загружаться.

ЗЫ: Во избежание путаницы имеет смысл вынести старые ядра из конфига загрузчика и /boot/, всё равно они теперь неработоспособны.

:wq
--
Live free or die

И собственно, ради чего оно затевалось

Дополнения (перечитывать тему с начала лень, краткое резюме):
1. Выключаем поддержку IDE (которая устарела):
< > ATA/ATAPI/MFM/RLL support --->
2. Включаем подержку libata (если не используется initramfs, то монолитно):
<*> Serial ATA (prod) and Parallel ATA (experimental) drivers --->
(и естественно, соответствующее конфигурирование ядра, сборка, установка модулей, копирование и прописывание в конфиг загрузчика образа ядра)

Далее:
3. Загрузка с Live CD (который уже цепляет диски в режиме libata).
4. Проверка конфига ядра [которое предполагается к использованию]: читаем используемые модули (lspci -k и сравниваем с src/linux/.config.
Если всё сделано правильно, то:
5. Монтирование разделов.
6. chroot.
7. Переписывание загрузчика (lilo).
8. reboot

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".