Stage4

Материал из Ай да Linux Wiki
Перейти к навигации Перейти к поиску
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


Вступление

Эта статья расскажет о том как создать архив со 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
  • Убедитесь что следующие файлы присутствуют в вашей системе
/boot/grub/grub.conf (или /boot/grub/menu.lst)
/etc/fstab
/etc/conf.d/hostname
/etc/hosts
/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