[Solved] Порядок действий при переходе на libata
Anarchist 12 ноября, 2008 - 19:00
Отсиживаясь за 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
.
Включать всё статично: в смысле - из подменю
libata
?Поддержка scsi есть (в первую очередь для USB flash drive).
:wq
--
Live free or die
fstab изначально лучше по
fstab изначально лучше по линкам от udev настроить - чтоб не думать что куда слетело
можно узнать а как оное
можно узнать а как оное выглядит? а то ни разу в жизни ни зрел :)
скрытный секс :)
это по
это по меткам
Не могли бы Вы
Не могли бы Вы аргументировать это предложение (исходя из моего опыта: имеет смысл если часто играться с перестановкой жёстких дисков)?
И ещё я прошу Вас пояснить каким образом получается
/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 - синяя...
.
1. По
label
мнемоничнее.2. Невозможно по причине
;)
:wq
--
Live free or die
Не придётся
Не придётся. Если собирать ядро 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
С
на
Пробую пересобирать ядро.
В секции
Device Drivers -> ATA/ATAPI/MFM/RLL support
(ничего более похожего на IDE не нашёл. В это секции только одно явное упоминание IDE в контексте 'DEPRECATED'[ ] Probe IDE PCI devices in the PCI bus order (DEPRECATED)
Дальше будем посмотреть.
ЗЫ: Сам дурак. В соседней теме тов. Agressor подсказывает
ЗЗЫ:
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
/
Подтверждаю.
Дома система стоит на 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