[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Это старая версия документа!


сhroot из установочного носителя

В Slackware полно инструментов, способных помочь, когда система отказывается грузиться. Например, когда обновили файл ядра, но забыли выполнить после этого lilo.

Для доступа к системе помимо непосредственной загрузки в нее возможно использовать установочный носитель Slackware, например, первый из CD или DVD. После загрузки с установочного носителя, корневой каталог установочного носителя возможно сменить на примонтированный корневой раздел диска с установленной системой, а затем выполнить команды, изменяющие установленную систему.

Подготовка томов

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

Простейший пример – одиночный локальный жёсткий диск без какого-либо шифрования. В этом случае всё, что необходимо сделать,– определить имя раздела и перейти к монтированию.

Иначе, если используется LVM/EVMS или шифрованный том, необходимо подготовить их для монтирования и смены корня.

Для разблокирования раздела LUKS необходимо открыть его ('open') и дать ему имя при помощи команды (здесь sdXN – пример имени раздела):

cryptsetup luksOpen /dev/sdXN crypted (произвольное имя)

Теперь по запросу нужно ввести парольную фразу для разблокировки тома. Этот раздел будет сопоставлен с '/dev/mapper/crypted'.

Для томов LVM нужно убедиться, что система способна их распознать и активировать. Для этого используем команды:

  • vgscan --mknodes : ищет логические тома, может потребовать времени
  • vgchange -ay : активирует обнаруженные тома
  • Если обнаружено более одной группы, выберите нужную при помощи vgchange -ay имяГруппы

Монтирование томов

После подготовки можно перейти к монтированию томов. Использование в качестве точки монтирования /mnt обязательно, если только планируете запускать setup.

Определившись с именем раздела, нужно примонтировать его:

mount /dev/ИмяТома /mnt

Ниже три распространённых примера.

1. Всё установлено на корневой (/) раздел /dev/sda1. LVM или дополнительные драйверы не используются.

mount /dev/sda1 /mnt

2. Два жёстких диска, /dev/sdb1 используется для /home, /dev/sda1 для всего остального в корне (/).

mount /dev/sda1 /mnt
mount /dev/sdb1 /mnt/home

3. For the third example the user has used LVM and has already made their volume group known to the kernel. The user is using the logical volumes «root, usr, home, opt, var, srv» all under one volume group labeled «myvg». In addition, this user has used LUKS encryption and therefore has placed a small /boot under /dev/sda1.

mount /dev/myvg/root /mnt
mount /dev/myvg/usr  /mnt/usr
mount /dev/myvg/home /mnt/home
mount /dev/myvg/opt  /mnt/opt
mount /dev/myvg/var  /mnt/var
mount /dev/myvg/srv  /mnt/srv
mount /dev/sda1      /mnt/boot

Пример возможно упростить при помощи цикла for для всего, кроме /boot (/dev/sda1) и / (/dev/myvg/root):

for dir in usr home opt var srv; do
  mount /dev/myvg/$dir /mnt/$dir
done

Далее необходимо подготовить три виртуальных каталога для использования внутри нового корня. Это /dev – каталог с файлами, представляющими аппаратные устройства; /proc – каталог с виртуальными файлами, представляющими процессы и /sys – каталог с различными системными файлами ядра:

mount -o bind  /dev /mnt/dev
mount -o bind /proc /mnt/proc
mount -o bind /sys  /mnt/sys

Тут тоже возможно использовать цикл for:

for dir in dev proc sys; do
  mount -o bind  /$dir /mnt/$dir
done

Смена корня

Теперь, когда разделы смонтированы, можно сменить корень (chroot) на /mnt:

chroot /mnt /bin/bash
Если подготавливались тома LVM может потребоваться вновь запустить vgscan --mknodes и vgchange -ay, поскольку ранее они изменяли RAM-диск установочного носителя, а не смонтированные разделы.

Полученное приглашение bash от оболочки, запущенной на установленной системе. Теперь можно работать с установленной системой как если бы она была загружена обычным образом. Например, редактирование /etc/lilo.conf и выполнение /sbin/lilo воздействуют на установленную систему, а не на систему установочного носителя.

Источники

* Исходный текст написан cmyster.
* Информация по LVM и LUKS в основном из файлов README от Eric-а на установочном диске.
* Перевод Serg Bormant

 ru:howtos:slackware_admin:how_to_chroot_from_media ()
Этот перевод старее, чем оригинальная страница, и может быть неактуальным. Смотрите, что было изменено.
Перевод этой страницы?: