====== с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. В третьем примере используется LVM, группа томов уже подготовлена и известна ядру. Используются логические тома "root, usr, home, opt, var, srv" в группе томов "myvg". Также используется шифрование LUKS, поэтому небольшой раздел для /boot расположен на /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'' воздействуют на установленную систему, а не на систему установочного носителя. ====== Источники ====== * Исходный текст написан [[wiki:user:cmyster | cmyster]].\\ * Информация по LVM и LUKS в основном из файлов README от [[wiki:user:alienbob | Eric]]-а на установочном диске.\\ * Перевод [[wiki:user:bormant|Serg Bormant]] {{tag>howtos slackware_administration chroot recovery author_cmyster translator_bormant}}