Stage4: различия между версиями

Материал из Ай да Linux Wiki
Перейти к навигации Перейти к поиску
(не работают исключения как было)
 
(не показаны 4 промежуточные версии 1 участника)
Строка 1: Строка 1:
 
[[Category:Руководства]]
 
[[Category:Руководства]]
 +
[[Category:Gentoo]]
  
 
==Вступление==
 
==Вступление==
Строка 42: Строка 43:
 
Содержание файла stage4.excl:
 
Содержание файла stage4.excl:
  
 +
<source lang="bash">
 
  .bash_history
 
  .bash_history
 
  /dev/*
 
  /dev/*
Строка 51: Строка 53:
 
  /usr/portage/*
 
  /usr/portage/*
 
  /путь/для/сохранения/stage4.tar.bz2
 
  /путь/для/сохранения/stage4.tar.bz2
 +
</source>
  
 
После завершения настроек архивации, мы создадим архив нашей системы:
 
После завершения настроек архивации, мы создадим архив нашей системы:
  
  # tar cjpvf /path/to/save/at/stage4.tar.bz2 / -X stage4.excl
+
<source lang="bash">
 +
  tar cjpvf /path/to/save/at/stage4.tar.bz2 -X stage4.excl /
 +
</source>
  
 
Опции tar которые мы использовали:
 
Опции tar которые мы использовали:
Строка 71: Строка 76:
 
Используйте для этого программу 'split', например в нашем случае это будет выглядеть так:
 
Используйте для этого программу 'split', например в нашем случае это будет выглядеть так:
  
  #tar cjpv / -X stage4.excl | split --bytes=650m - -d /path/to/save/at/stage4.tar.bz2_
+
<source lang="bash">
 +
  tar cjpv / -X stage4.excl | split --bytes=650m - -d /path/to/save/at/stage4.tar.bz2_
 +
</source>
  
 
Эти части позже могут быть воссоединены программой 'cat'. Однако имейте ввиду, что для последующего использования команды 'cat' вам понадобится переписать все части архива в одну директорию, и лишь после этого воспользоваться аналогичной очередью:
 
Эти части позже могут быть воссоединены программой 'cat'. Однако имейте ввиду, что для последующего использования команды 'cat' вам понадобится переписать все части архива в одну директорию, и лишь после этого воспользоваться аналогичной очередью:
  
  #cat /path/to/save/at/stage4.tar.bz2_* | tar xjpv
+
<source lang="bash">
 +
  cat /path/to/save/at/stage4.tar.bz2_* | tar xjpv
 +
</source>
  
 
Здесь приведены несколько скриптов которые могут сделать это сами.
 
Здесь приведены несколько скриптов которые могут сделать это сами.
Строка 84: Строка 93:
 
* Установите системное время UTC и/или время в BIOS
 
* Установите системное время UTC и/или время в BIOS
  
  # date MMDDHHmmCCYY
+
<source lang="bash">
  # hwclock --systohc
+
  date MMDDHHmmCCYY
 +
  hwclock --systohc
 +
</source>
  
 
* Создайте разделы, файловые системы и смонтируйте их
 
* Создайте разделы, файловые системы и смонтируйте их
Строка 91: Строка 102:
 
при старте LiveCD. Позже вы сможете смонтировать и размонтировать другие CD.)
 
при старте LiveCD. Позже вы сможете смонтировать и размонтировать другие CD.)
  
  # cd /mnt/gentoo
+
<source lang="bash">
  # tar -xvjpf stage4.tar.bz2
+
  cd /mnt/gentoo
 +
  tar -xvjpf stage4.tar.bz2
 +
</source>
  
 
* Если при создании архива вы копировали раздел /boot в /bootcpy, то при распаковке не забудьте восстановить /boot новой системы из каталога /bootcpy
 
* Если при создании архива вы копировали раздел /boot в /bootcpy, то при распаковке не забудьте восстановить /boot новой системы из каталога /bootcpy
  
  # cp -R /mnt/gentoo/bootcpy/* /mnt/gentoo/boot/
+
<source lang="bash">
 +
  cp -R /mnt/gentoo/bootcpy/* /mnt/gentoo/boot/
 +
</source>
  
 
Дважды проверьте раздел /boot после копирования, прежде чем удалять /bootcpy!
 
Дважды проверьте раздел /boot после копирования, прежде чем удалять /bootcpy!
# rm -rf /mnt/gentoo/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/console c 5 1
  # mknod -m 660 /mnt/gentoo/dev/null c 1 3
+
  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
  
# mount -t proc none /mnt/gentoo/proc
+
<source lang="bash">
# mount -o bind /dev /mnt/gentoo/dev
+
  mount -t proc none /mnt/gentoo/proc
 +
  mount -o bind /dev /mnt/gentoo/dev
 +
</source>
  
 
* Скачайте или установите с CD последнюю версию портежей
 
* Скачайте или установите с CD последнюю версию портежей
  
  # cd /mnt/gentoo/usr/
+
<source lang="bash">
  # wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2
+
  cd /mnt/gentoo/usr/
  # tar xjf portage-latest.tar.bz2
+
  wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2
 +
  tar xjf portage-latest.tar.bz2
 +
</source>
  
 
* Смените корень и войдите в только что установленную систему /mnt/gentoo
 
* Смените корень и войдите в только что установленную систему /mnt/gentoo
  
  # chroot /mnt/gentoo /bin/bash
+
<source lang="bash">
  # env-update; source /etc/profile
+
  chroot /mnt/gentoo /bin/bash
 +
  env-update; source /etc/profile
 +
</source>
  
 
* Убедитесь что следующие файлы присутствуют в вашей системе
 
* Убедитесь что следующие файлы присутствуют в вашей системе
  o /boot/grub/grub.conf (или /boot/grub/menu.lst)
+
  /boot/grub/grub.conf (или /boot/grub/menu.lst)
  o /etc/fstab
+
  /etc/fstab
  o /etc/conf.d/hostname
+
  /etc/conf.d/hostname
  o /etc/hosts
+
  /etc/hosts
  o /etc/conf.d/net
+
  /etc/conf.d/net
  
 
* Убедитесь, что установили загрузчик (grub или lilo) в главную загрузочную запись (mbr)
 
* Убедитесь, что установили загрузчик (grub или lilo) в главную загрузочную запись (mbr)
Строка 136: Строка 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 а второе запишет информацию о разделах (включая логические диски, которые не записываются в
Строка 144: Строка 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