安装分区后仍可获取 Live CD 的文件

安装分区后仍可获取 Live CD 的文件

我想/etc/pam.d/common-auth从实时 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.dcat common-auth看不到我的计算机的文件,但可以看到 Kubuntu 的文件。为什么我做错了?

顺便说一句,当我catchroot 之前的文件时,它与 chroot 之后的文件相同chroot

答案1

您的程序中存在几个错误:

  1. 您无需/mnt/os使用 mkdir 重新创建任何文件夹。一旦您将磁盘挂载到文件夹上,原始文件夹内的所有内容都会暂时隐藏并由挂载磁盘的内容替换。您的文件夹中/dev/sda8很可能已经包含这些文件夹 - 如果没有,则不会以这种方式创建它们。

  2. 同样适用于 mount-bind。您无法编辑/dev/sda驱动器上的 PAM 配置,因为/etc在调用 chroot 之前,您已将磁盘上的文件夹替换为 live cd 上的文件夹。

  3. 此外,您不需要将除 、 和 之外的任何内容绑定/dev/proc/sys的 chroot 环境中。这些文件夹包含代表设备和操作系统部分的抽象文件。它们由您的内核在启动或运行时生成,并且需要在 chrooted 环境中可用,否则某些程序可能无法运行。如果您不挂载这些文件夹,/dev/sda8则从 live cd 查看时它们将显示为空。您可以在上找到 Unix 文件系统中每个文件夹应包含的内容的快速摘要维基百科

  4. 您需要绑定/bin或的唯一原因/lib是,如果 live cd 上的系统架构或内核与硬盘上的文件系统不兼容。但在这种情况下,像这样 chroot 不是一个好主意 - 它没有任何好处。

最后,如果你只是编辑配置文件,你不需要 chroot 到你的驱动器中。你可以挂载根分区,然后使用预装的编辑器直接从 live cd 系统编辑文件,例如nano

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

相关内容