Stage4: различия между версиями
Langator (обсуждение | вклад) м |
Wkg (обсуждение | вклад) (не работают исключения как было) |
||
(не показано 7 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
[[Category:Руководства]] | [[Category:Руководства]] | ||
+ | [[Category:Gentoo]] | ||
==Вступление== | ==Вступление== | ||
Строка 16: | Строка 17: | ||
его, например, X, Xfce4, Sun's JDK, CVS, Emacs, Thunderbird, и Firefox. | его, например, X, Xfce4, Sun's JDK, CVS, Emacs, Thunderbird, и Firefox. | ||
− | ==Архивация /boot== | + | == Архивация /boot == |
Сделайте копию /boot Если /boot у вас смонтирована отдельным разделом, то примонтируйте её сначала: | Сделайте копию /boot Если /boot у вас смонтирована отдельным разделом, то примонтируйте её сначала: | ||
− | + | <source lang="bash"> | |
− | + | mount /boot | |
− | + | cp -R /boot /bootcpy | |
+ | umount /boot | ||
+ | </source> | ||
+ | |||
+ | Как вариант, вы можете просто примонтировать /boot перед архивацией вашей системы. Но имейте в виду что это может вызвать проблемы в использовании stage4 на системах с различающимся оборудованием(железом). Если вы клонируете систему на машины с похожей конфигурацией, убедитесь что вы используете различные ключи | ||
− | + | <source lang="bash"> | |
− | |||
− | |||
− | |||
− | |||
/etc/ssh/ssh_host_* keys. | /etc/ssh/ssh_host_* keys. | ||
− | |||
rm /etc/ssh/ssh_host* | rm /etc/ssh/ssh_host* | ||
+ | </source> | ||
− | + | Так же вы можете прочитать Running out of disk space FAQ для освобождения места на жестком диске. С большой осторожностью чистите /var/tmp. На некоторых системах информация о конфигурации звуковой карты и портежей берется оттуда. Это может вызвать ряд проблем позднее. Может быть лучше иметь слегка больший tarball чем узнать что восстановленная система неработоспособна. | |
− | |||
− | С большой осторожностью чистите /var/tmp. На некоторых системах информация о конфигурации звуковой карты и портежей | ||
− | берется оттуда. Это может вызвать ряд проблем позднее. Может быть лучше иметь слегка больший tarball чем узнать что | ||
− | восстановленная система неработоспособна. | ||
==Архивация системы== | ==Архивация системы== | ||
Строка 46: | Строка 43: | ||
Содержание файла stage4.excl: | Содержание файла stage4.excl: | ||
+ | <source lang="bash"> | ||
.bash_history | .bash_history | ||
/dev/* | /dev/* | ||
Строка 55: | Строка 53: | ||
/usr/portage/* | /usr/portage/* | ||
/путь/для/сохранения/stage4.tar.bz2 | /путь/для/сохранения/stage4.tar.bz2 | ||
+ | </source> | ||
После завершения настроек архивации, мы создадим архив нашей системы: | После завершения настроек архивации, мы создадим архив нашей системы: | ||
− | + | <source lang="bash"> | |
+ | tar cjpvf /path/to/save/at/stage4.tar.bz2 -X stage4.excl / | ||
+ | </source> | ||
Опции tar которые мы использовали: | Опции tar которые мы использовали: | ||
Строка 75: | Строка 76: | ||
Используйте для этого программу 'split', например в нашем случае это будет выглядеть так: | Используйте для этого программу 'split', например в нашем случае это будет выглядеть так: | ||
− | + | <source lang="bash"> | |
+ | tar cjpv / -X stage4.excl | split --bytes=650m - -d /path/to/save/at/stage4.tar.bz2_ | ||
+ | </source> | ||
Эти части позже могут быть воссоединены программой 'cat'. Однако имейте ввиду, что для последующего использования команды 'cat' вам понадобится переписать все части архива в одну директорию, и лишь после этого воспользоваться аналогичной очередью: | Эти части позже могут быть воссоединены программой 'cat'. Однако имейте ввиду, что для последующего использования команды 'cat' вам понадобится переписать все части архива в одну директорию, и лишь после этого воспользоваться аналогичной очередью: | ||
− | + | <source lang="bash"> | |
+ | cat /path/to/save/at/stage4.tar.bz2_* | tar xjpv | ||
+ | </source> | ||
Здесь приведены несколько скриптов которые могут сделать это сами. | Здесь приведены несколько скриптов которые могут сделать это сами. | ||
Строка 88: | Строка 93: | ||
* Установите системное время UTC и/или время в BIOS | * Установите системное время UTC и/или время в BIOS | ||
− | + | <source lang="bash"> | |
− | + | date MMDDHHmmCCYY | |
+ | hwclock --systohc | ||
+ | </source> | ||
* Создайте разделы, файловые системы и смонтируйте их | * Создайте разделы, файловые системы и смонтируйте их | ||
Строка 95: | Строка 102: | ||
при старте LiveCD. Позже вы сможете смонтировать и размонтировать другие CD.) | при старте LiveCD. Позже вы сможете смонтировать и размонтировать другие CD.) | ||
− | + | <source lang="bash"> | |
− | + | cd /mnt/gentoo | |
+ | tar -xvjpf stage4.tar.bz2 | ||
+ | </source> | ||
* Если при создании архива вы копировали раздел /boot в /bootcpy, то при распаковке не забудьте восстановить /boot новой системы из каталога /bootcpy | * Если при создании архива вы копировали раздел /boot в /bootcpy, то при распаковке не забудьте восстановить /boot новой системы из каталога /bootcpy | ||
− | + | <source lang="bash"> | |
+ | cp -R /mnt/gentoo/bootcpy/* /mnt/gentoo/boot/ | ||
+ | </source> | ||
Дважды проверьте раздел /boot после копирования, прежде чем удалять /bootcpy! | Дважды проверьте раздел /boot после копирования, прежде чем удалять /bootcpy! | ||
− | + | <source lang="bash"> rm -rf /mnt/gentoo/bootcpy | |
+ | </source> | ||
* Создайте несколько основных устройств, которые могут потребоваться при загрузке системы | * Создайте несколько основных устройств, которые могут потребоваться при загрузке системы | ||
− | + | <source lang="bash"> | |
− | + | 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 | (опционально) # mknod -m 660 /mnt/gentoo/dev/tty1 c 4 1 | ||
+ | </source> | ||
* Примонтируйте /proc и /dev внутри chroot | * Примонтируйте /proc и /dev внутри chroot | ||
− | + | <source lang="bash"> | |
− | + | mount -t proc none /mnt/gentoo/proc | |
+ | mount -o bind /dev /mnt/gentoo/dev | ||
+ | </source> | ||
* Скачайте или установите с CD последнюю версию портежей | * Скачайте или установите с CD последнюю версию портежей | ||
− | + | <source lang="bash"> | |
− | + | cd /mnt/gentoo/usr/ | |
− | + | wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2 | |
+ | tar xjf portage-latest.tar.bz2 | ||
+ | </source> | ||
* Смените корень и войдите в только что установленную систему /mnt/gentoo | * Смените корень и войдите в только что установленную систему /mnt/gentoo | ||
− | + | <source lang="bash"> | |
− | + | chroot /mnt/gentoo /bin/bash | |
+ | env-update; source /etc/profile | ||
+ | </source> | ||
* Убедитесь что следующие файлы присутствуют в вашей системе | * Убедитесь что следующие файлы присутствуют в вашей системе | ||
− | + | /boot/grub/grub.conf (или /boot/grub/menu.lst) | |
− | + | /etc/fstab | |
− | + | /etc/conf.d/hostname | |
− | + | /etc/hosts | |
− | + | /etc/conf.d/net | |
* Убедитесь, что установили загрузчик (grub или lilo) в главную загрузочную запись (mbr) | * Убедитесь, что установили загрузчик (grub или lilo) в главную загрузочную запись (mbr) | ||
Строка 140: | Строка 159: | ||
Прежде чем продолжить сохраните вашу текущую таблицу разделов: | Прежде чем продолжить сохраните вашу текущую таблицу разделов: | ||
+ | <source lang="bash"> | ||
dd if=/dev/(Ваш_диск) of=mbr.save count=1 bs=512 | dd if=/dev/(Ваш_диск) of=mbr.save count=1 bs=512 | ||
sfdisk -d /dev/(Ваш_диск) > partitions.save | sfdisk -d /dev/(Ваш_диск) > partitions.save | ||
+ | </source> | ||
Первое сохранит mbr а второе запишет информацию о разделах (включая логические диски, которые не записываются в | Первое сохранит mbr а второе запишет информацию о разделах (включая логические диски, которые не записываются в | ||
Строка 148: | Строка 169: | ||
Для того чтобы восстановить разделы, введите следующее: | Для того чтобы восстановить разделы, введите следующее: | ||
+ | <source lang="bash"> | ||
dd if=mbr.save of=/dev/(Ваш_диск) | dd if=mbr.save of=/dev/(Ваш_диск) | ||
sfdisk /dev/(Ваш_диск) < partitions.save | sfdisk /dev/(Ваш_диск) < partitions.save | ||
− | + | </source> | |
==Настройка GRUB== | ==Настройка GRUB== | ||
После смены корня: | После смены корня: | ||
+ | <source lang="bash"> | ||
root# grub | root# grub | ||
grub> root (hd0,0) | grub> root (hd0,0) | ||
grub> setup (hd0) | grub> setup (hd0) | ||
grub> quit | grub> quit | ||
+ | </source> | ||
(hd может меняться в зависимости от вашей конфигурации) | (hd может меняться в зависимости от вашей конфигурации) | ||
Более подробную информацию смотрите в handbook | Более подробную информацию смотрите в handbook |
Текущая версия на 18:40, 30 апреля 2019
Вступление
Эта статья расскажет о том как создать архив со 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