После монтирования разделов все еще получаем файлы Live CD

274
user1

Я хочу отредактировать /etc/pam.d/common-authфайл моей системы с live CD (угадайте почему ...).

Я выполнил следующие команды:

sudo su cd /mnt mkdir os cd os mkdir dev sys lib lib64 bin etc proc home boot mount /dev/sda8 /mnt/os mount /dev/sda9 /mnt/os/home mount /dev/sda1 /mnt/os/boot mount --rbind /sys /mnt/os/sys mount --rbind /proc /mnt/os/proc mount --rbind /dev /mnt/os/dev mount --rbind /bin /mnt/os/bin mount --rbind /lib /mnt/os/lib mount --rbind /lib64 /mnt/os/lib64 mount --rbind /etc /mnt/os/etc chroot /mnt/os 

После этого я все еще получаю линию root@kubuntu:/#. Я думал, что это изменится kubuntuна имя моего компьютера или что-то другое. Но я на своем компьютере, потому что, когда у cd /mntменя нет osкаталога, а другие. /homeтакже правильно смонтирован - я вижу все мои файлы. Итак, после того, как я захожу, /etc/pam.dя cat common-authвижу не файл моего компьютера, а файл Kubuntu. Почему я сделал не так?

Кстати, когда я catфайл до chroot это то же самое, что и после chroot.

1

1 ответ на вопрос

1
Marek Rost

В вашей процедуре есть несколько ошибок:

  1. Вам не нужно пересоздавать какие-либо папки /mnt/osс помощью mkdir. После подключения диска к папке все содержимое исходной папки временно скрывается и заменяется содержимым подключенного диска. Ваш /dev/sda8скорее всего, уже содержит эти папки - и если нет, то они не будут созданы таким образом.

  2. То же относится и к Mount-Bind. Вы не можете редактировать конфигурацию PAM на вашем /dev/sdaдиске, потому что вы заменяете /etcпапку с вашего диска на папку в live cd, прежде чем вызывать chroot.

  3. Futhermore вам не нужно связывать ничего, кроме того /dev, /procи /sysв среду корневой. Эти папки содержат абстрактные файлы, которые представляют устройства и части операционной системы. Они генерируются вашим ядром при загрузке или во время выполнения и должны быть доступны в среде chroot, в противном случае некоторые программы могут не работать. Если вы не смонтируете эти папки, они будут отображаться пустыми /dev/sda8при просмотре с live cd. Вы можете найти краткий обзор того, что каждая папка в файловой системе Unix должна содержать в википедии .

  4. Единственная причина, по которой вам нужно было бы связать /binили /libбыло бы, если бы архитектура или ядро ​​системы на live cd были несовместимы с файловой системой на вашем жестком диске. Но в этом случае было бы не очень хорошей идеей использовать такие возможности - это не приносит никакой пользы.

Наконец, если вы редактируете только файлы конфигурации, вам не нужно загружаться в ваш диск. Вы можете просто смонтировать корневой раздел и напрямую отредактировать файл из live cd system с помощью предустановленного редактора, например nano:

mount /dev/sda8 /mnt nano /mnt/etc/pam.d/common-auth 

Похожие вопросы