Полезные советы по установке Gentoo/x86

Sven Vermeulen  автор
Xavier Neys  редактор
Илья Крец  переводчик
Антон Кекконен  переводчик
Сергей Кулешов  редактор перевода
Алексей Чумаков  редактор перевода

Обновлено 4 октября 2006
Исходный документ обновлен 18 сентября 2007

1.  Вступление

Для начала

Этот документ содержит различные полезные советы по установке Gentoo/x86. Большинство из них описаны кратко — подразумевается, что они послужат дополнением к руководству по установке, а не заменой ему.

Содержание

Расширенная установка

Упрощение установки

Решение ошибок/проблем

2.  Расширенная установка

Программный RAID

Примечание: Если вы не знакомы с программным RAID, пожалуйста, прочтите Software-RAID-HOWTO (англ.).

Примечание: Более подробное описание установки приведено в руководстве по быстрой установке программного RAID и LVM2 для x86 (англ.).

После загрузки с установочного CD, загрузите соответствующие модули RAID. Например, если вы собираетесь использовать RAID-1:

Листинг 2.1: Загрузка модуля RAID-1

# modprobe raid1

Разбивая свои диски, убедитесь, что используете тип раздела fd (Linux raid autodetect), а не 83 (Linux native). Тип раздела можно изменить, используя команду t программы fdisk.

Теперь, до начала создания массивов RAID, нам потребуется создать узлы метаустройств:

Листинг 2.2: Создание узлов метаустройств

# mknod /dev/md1 b 9 1
# mknod /dev/md2 b 9 2
# mknod /dev/md3 b 9 3

После разбивки на разделы, создайте файл /etc/mdadm.conf (да, именно так, в среде установочного CD), с помощью mdadm, расширенного средства управления RAID. Например, чтобы зеркалировать (RAID-1) разделы boot, swap и root, охватывая /dev/sda и /dev/sdb, можете использовать:

Листинг 2.3: Создание устройств raid командой mdadm

# mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
# mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
# mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3

Важно: На загрузочном разделе не следует использовать никаких разновидностей чередования (striping), таких как RAID-0 or RAID-5.

Драйвер Linux Software RAID начнет создавать метаустройства. Вы можете проследить за этим в /proc/mdstat. Перед продолжением дождитесь, пока создание метаустройств окончательно завершится..

Листинг 2.4: Сохранение сведений о созданных устройствах

# mdadm --detail --scan > /etc/mdadm.conf

Теперь и далее используйте /dev/md1 для загрузочного раздела, /dev/md2 для раздела подкачки и /dev/md3 для корневого раздела.

Прямо перед изменением корня (chroot), не забудьте скопировать /etc/mdadm.conf в /mnt/gentoo/etc.

При конфигурации ядра, обязательно включите соответствующую поддержку RAID в состав ядра, а не модулем.

При установке дополнительных утилит, также установите mdadm. Заметьте, что она есть не на всех установочных CD, поэтому у вас может не получиться бессетевая установка Gentoo на программный raid.

При настройке загрузчика не забудьте установить его в MBR обоих дисков, если используется зеркалирование.

ATA RAID c ядрами 2.4

Удостоверьтесь, что вы загрузились с установочного CD с параметром doataraid. После загрузки, проверьте содержимое /dev/ataraid. Там должны находиться различные каталоги disc* для каждого жесткого диска, доступного в ATA RAID. Целый диск показывается как disc, а разделы — как part*.

Выпишите различные файлы устройств /dev/ataraid/disc*/*, на которые будете устанавливать Gentoo. При установке вам потребуется указывать этот путь вместо /dev/hda, указанного в примерах.

Перед изменением корня, свяжите структуру /dev с новой средой:

Листинг 2.5: Связывание /dev

# mount -o bind /dev /mnt/gentoo/dev

При настройке ядра не забудьте включить поддержку вашего ATA RAID чипсета с нужными параметрами. Например, для популярной системы ATA RAID Promise FastTrack built-in RAID требуется включение в ядро Promise FastTrack Options.

При настройке GRUB сначала потребуется создать загрузочный диск GRUB. Это не так сложно, как кажется. Сначала установите GRUB как обычно, а дойдя до пункта, в котором GRUB устанавливается в MBR, следуйте этим инструкциям:

Листинг 2.6: Создание загрузочного диска GRUB

# cd /boot/grub
# dd if=stage1 of=/dev/fd0 bs=512 count=1
# dd if=stage2 of=/dev/fd0 bs=512 seek=1

Еще вам потребуется записать файл grub.conf. Здесь нет никаких отличий от установочных инструкций, просто убедитесь, что запись root= указывает на ваше устройство ATA RAID.

После окончания установки, загрузитесь со своего загрузочного диска GRUB. Вы должны увидеть приглашение командной строки GRUB. Теперь настройте GRUB для загрузки с устройства ATA RAID:

Листинг 2.7: Установка GRUB на ATA RAID

grub> root (hd0,x)
grub> setup (hd0)
grub> quit

Теперь перезагрузитесь (вытащив загрузочную дискету GRUB из дисковода).

Пользователи LILO могут просто следовать указаниям руководства по установке.

Использование ядра с установочного CD

Если вы не хотите компилировать ядро сами, можно взять ядро с установочного компакт-диска и скопировать его в свою систему. Дойдя в процессе инсталяции Gentoo до стадии компиляции ядра, перейдите на другую виртуальную консоль (Alt-F2) и войдите в систему как ROOT, используя пароль, установленный вами в начали установки (passwd root).

Скопируйте ядро и модули в свою систему:

Листинг 2.8: Копирование ядра с установочного CD

(${KN} это название ядра, обычно это что-то вроде 'gentoo' или 'smp')
cdimage ~# cp /mnt/cdrom/isolinux/${KN} /mnt/cdrom/isolinux/${KN}.igz /mnt/gentoo/boot
cdimage ~# mkdir -p /mnt/gentoo/lib/modules
cdiamge ~# cp -Rp /lib/modules/`uname -r` /mnt/gentoo/lib/modules

Удостоверьтесь в том, что вы установили hotplug (emerge hotplug) и уже добавили его в загрузку. Чтобы все запущенные сейчас модули (с установочного CD) загружались на вашей машине, запустите следующие команды из среды с измененным корнем (chroot):

Листинг 2.9: Добавление всех запущенных модулей в файл modules.conf

# cat /proc/modules | cut -d ' ' -f 1 >> \
  /etc/modules.autoload.d/kernel-`uname -r | cut -d . -f -2`
# modules-update

3.  Упрощение установки

Как оставить терминал без присмотра

Многим хочется отойти от своей системы, пока она компилируется. Иногда это довольно сложно, поскольку установка производится в месте, где много народу и нельзя доверять всем подряд. На этот случай пригодится возможность проводить компиляцию в фоновом режиме, выйдя изо всех терминалов.

Есть несколько возможных путей. Первый — использовать screen. После загрузки с LiveCD, установите пароль для root и запустите сеанс screen:

Примечание: screen есть не на всех LiveCD. Если у вас его нет, придется использовать один из других способов, описанных в этом разделе.

Листинг 3.1: Запуск сеанса screen

# screen -S gentoo

Из сеанса screen можно хоть провести полную установку. Захотев уйти от терминала, нажмите Ctrl-a, d (то есть control и a одновременно, затем d), чтобы открепить свой сеанс screen. Теперь можно с уверенностью выйти из системы.

Чтобы восстановить доступ к терминалу, опять войдите как root и прикрепитесь к запущенному сеансу screen:

Листинг 3.2: Прикрепление к сеансу screen

# screen -x gentoo

Если вы не можете использовать screen, есть другой путь отойти от терминала. Следуйте инструкциям по установке, а дойдя до пункта, в котором запускается длительная компиляция (например, шаг с запуском ./scripts/bootstrap.sh), используйте команду nohup, которая позволит процессу продолжиться, даже если вы выйдете. Не забудьте добавить в конце "&", иначе процесс не будет выполняться в фоновом режиме! Запомните, в каком каталоге вы находитесь (команда pwd покажет ее), так как это вам позже понадобится.

Листинг 3.3: Использование nohup

# pwd
/usr/portage
# nohup ./scripts/bootstrap.sh &

Теперь выйдите из среды измененного корня (exit) и из сеанса загрузочного CD. Компиляция продолжится в фоновом режиме.

Захотев проверить компиляцию, войдите как root (на установочный CD) и сделайте chroot обратно в свою среду, затем перейдите в оставленный каталог:

Листинг 3.4: Chroot обратно

# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
# cd /usr/portage

Теперь запустите команду less на файле nohup.out, расположенном внутри каталога. Компиляция добавляет свои сообщения в этот файл, так что при желании следить за ней запустите less nohup.out и нажмите F, чтобы наблюдать за ее ходом. Когда компиляция закончится, можно приступать к следующему пункту указаний по установке.

Если вам надоело следить за изменениями, нажмите Ctrl-C, затем q. Это остановит только процесс less, не затрагивая процесс компиляции.

4.  Решение ошибок/проблем

Тщательное тестирование дисков

Если вы считаете, что необходимо тщательно проверить ваш диск на предмет целостности (неисправные секторы и т.д.), можете включить параметр -c при создании на нем файловой системы ext2 или ext3 (используя mke2fs). Это запустит проверку на чтение, которая пометит все неисправные блоки. Если вы настоящий параноик, можете включить -c -c, чтобы провести детальный тест на чтение/запись.

Листинг 4.1: Проверка целостности диска

# mke2fs -j -c /dev/hda3

Восстановление сбойной установки

Если по какой-то причине ваша установка Gentoo дает сбой, вам не придется повторять ее раз за разом с самого начала. Вместо этого можно спокойно вернуться к моменту, в который вы, как вам кажется, ошиблись (или где, как вы считаете, есть ошибка в инструкции), и попробовать другой подход.

Прежде всего, вам потребуется перейти обратно в свою среду Gentoo Linux командой chroot. Снова следуйте указаниям, пропуская шаги по разбивке диска, так как ваши разделы уже созданы и даже заполнены. Таким образом, вы можете сразу монтировать эти разделы в /mnt/gentoo. Следует также пропустить шаги, связанные с извлечением файла стадии и изменением make.conf — вы же не хотите перезаписывать существующие файлы, не так ли?

Изменив корень на свою среду Gentoo Linux, сразу переходите к шагу, где, как вам кажется, следует попробовать действовать по-другому. Не повторяйте все шаги, такие как самогенерация, если не считаете, что именно там что-то пошло не так.

Например, если вы считаете, что неверно настроили grub.conf, можно сразу запустить свой редактор, чтобы изменить /boot/grub/grub.conf.

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

Например:

Как видите, после большинства действий по восстановлению можно сразу перезагружаться. Лишь изредка вам потребуется повторять последующие шаги установки.