Stage4

Материал из Ай да Linux Wiki
Перейти к навигации Перейти к поиску


Вступление

Эта статья расскажет о том как создать архив со stage4. Aрхив stage4 это образ вашего корневого (/) раздела жесткого диска. Основной причиной для создания Архива stage4 является возможность быстрого восстановления системы при сбоях на жестком диске или быстрого развертывания системы. Aрхив stage4 представляет собой тоже самое что и Архив stage3, с тем различием, что вы будете иметь систему с теми CFLAGS и софтом, которое вы уже установили на момент создания stage4. Вы можете адаптировать этот способ под ваши личные нужды.

Если вы хотите создать систему способную устанавливаться на разные архитектуры одного типа процессоров (х86 или PowerPC), то используйте genkernel для установки вашего ядра. Это позволит загрузиться, и ядро будет работать точно также как и livecd. Вы можете также уменьшить степень оптимизации флагов CFLAGS (например, MCPU или MARCH) для создания "всеядного" архива stage4. Вам также придется исправить ошибки в файле /etc/fstab и изменить или использовать USE флаги после распаковки stage4, в каждом конкретном случае.

Подразумевается, что вы уже установили Gentoo. Если ещё нет, то воспользуйтесь handbook и сперва установите систему.

Также подразумевается, что вы уже установили некоторый список программного обеспечения и желаете использовать его, например, X, Xfce4, Sun's JDK, CVS, Emacs, Thunderbird, и Firefox.

Архивация /boot

Сделайте копию /boot Если /boot у вас смонтирована отдельным разделом, то примонтируйте её сначала:

# mount /boot
# cp -R /boot /bootcpy
# umount /boot

Как вариант, вы можете просто примонтировать /boot перед архивацией вашей системы. Но имейте в виду что это может вызвать проблемы в использовании stage4 на системах с различающимся оборудованием(железом).


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

/etc/ssh/ssh_host_* keys.
rm /etc/ssh/ssh_host*

ТАк же вы можете прочитать Running out of disk space FAQ для освобождения места на жестком диске.

С большой осторожностью чистите /var/tmp. На некоторых системах информация о конфигурации звуковой карты и портежей берется оттуда. Это может вызвать ряд проблем позднее. Может быть лучше иметь слегка больший tarball чем узнать что восстановленная система неработоспособна.

Архивация системы

Создайте исключающий файл который скажет tar что не нужно добавлять в архив stage 4. Заканчивайте написание пути /* . Этим вы исключите из архива все содержимое, поскольку если путь заканчивается просто / то архиватор исключит из архива всю директорию целиком, а это значит, что при восстановлении вы потеряете эти директории.

Содержание файла stage4.excl:

.bash_history
/dev/*
/mnt/*
/tmp/*
/proc/*
/sys/*
/usr/src/*
/usr/portage/*
/путь/для/сохранения/stage4.tar.bz2

После завершения настроек архивации, мы создадим архив нашей системы:

# tar cjpvf /path/to/save/at/stage4.tar.bz2 / -X stage4.excl

Опции tar которые мы использовали:

c - создание архива
j - использование bzip2 алгоритма сжатия
p - сохранять атрибуты файлов(НЕ УДАЛЯТЬ!!)
v - во время выполнения записывать в консоли текущий архивируемый файл
f - выводить в файл (иначе - в стандартный вывод)
X - использовать файл с исключениями

Для более полного понимания и дополнительной информации прочтите tar manpage

Архивация займет достаточно много времени в зависимости от количества установленного софта. Рекомендуется сохранять архив на другой диск, подключенный к другому контролеру (для ускорения), или же на CD/DVD.

Если получившийся файл намного превышает размер CD/DVD, то вы можете разбить его на несколько небольших по размеру. Используйте для этого программу 'split', например в нашем случае это будет выглядеть так:

#tar cjpv / -X stage4.excl | split --bytes=650m - -d /path/to/save/at/stage4.tar.bz2_

Эти части позже могут быть воссоединены программой 'cat'. Однако имейте ввиду, что для последующего использования команды 'cat' вам понадобится переписать все части архива в одну директорию, и лишь после этого воспользоваться аналогичной очередью:

#cat /path/to/save/at/stage4.tar.bz2_* | tar xjpv

Здесь приведены несколько скриптов которые могут сделать это сами.

Установка из архива stage4

  • Загрузитесь с live CD
  • Установите системное время UTC и/или время в BIOS
# date MMDDHHmmCCYY
# hwclock --systohc
  • Создайте разделы, файловые системы и смонтируйте их
  • Скопируйте архивы stage4 на диск (если вы используете несколько CD загрузите систему набрав "gentoo docache"

при старте LiveCD. Позже вы сможете смонтировать и размонтировать другие CD.)

# cd /mnt/gentoo
# tar -xvjpf stage4.tar.bz2
  • Если при создании архива вы копировали раздел /boot в /bootcpy, то при распаковке не забудьте восстановить /boot новой системы из каталога /bootcpy
# cp -R /mnt/gentoo/bootcpy/* /mnt/gentoo/boot/

Дважды проверьте раздел /boot после копирования, прежде чем удалять /bootcpy!

# rm -rf /mnt/gentoo/bootcpy
  • Создайте несколько основных устройств, которые могут потребоваться при загрузке системы
# mknod -m 660 /mnt/gentoo/dev/console c 5 1
# mknod -m 660 /mnt/gentoo/dev/null c 1 3
(опционально) # mknod -m 660 /mnt/gentoo/dev/tty1 c 4 1
  • Примонтируйте /proc и /dev внутри chroot
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
  • Скачайте или установите с CD последнюю версию портежей
# cd /mnt/gentoo/usr/
# wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2
# tar xjf portage-latest.tar.bz2
  • Смените корень и войдите в только что установленную систему /mnt/gentoo
# chroot /mnt/gentoo /bin/bash
# env-update; source /etc/profile
  • Убедитесь что следующие файлы присутствуют в вашей системе
o /boot/grub/grub.conf (или /boot/grub/menu.lst)
o /etc/fstab
o /etc/conf.d/hostname
o /etc/hosts
o /etc/conf.d/net
  • Убедитесь, что установили загрузчик (grub или lilo) в главную загрузочную запись (mbr)

Настройка таблицы разделов

Прежде чем продолжить сохраните вашу текущую таблицу разделов:

dd if=/dev/(Ваш_диск) of=mbr.save count=1 bs=512
sfdisk -d /dev/(Ваш_диск) > partitions.save

Первое сохранит mbr а второе запишет информацию о разделах (включая логические диски, которые не записываются в mbr).

Для того чтобы восстановить разделы, введите следующее:

dd if=mbr.save of=/dev/(Ваш_диск)
sfdisk /dev/(Ваш_диск) < partitions.save

Настройка GRUB

После смены корня:

root# grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

(hd может меняться в зависимости от вашей конфигурации) Более подробную информацию смотрите в handbook