当 Slackware 安装在第一个硬盘上时,如何从第二个硬盘启动 Slackware?

当 Slackware 安装在第一个硬盘上时,如何从第二个硬盘启动 Slackware?

我首先安装了 slackware,并将驱动器安装在 HDD1 插槽中,然后在获得 HDD2 的托架后,我将 slackware 驱动器重新连接到 HDD2 插槽。 (我的 HDD1 上有 Windows)。

有没有办法从 HDD2 启动 slackware(我的系统是 Dell Studio 笔记本电脑)而无需重新安装?单独重新安装是否有效?

这是启动挂断之前的最后几行:

http://i.imgur.com/02XY18h.jpg

答案1

实现此目的的一种方法是从 Slackware iso 的 DVD 引导。

然后,在 root 提示符下,您应该挂载硬盘驱动器的根分区,如下所示(sdb1在示例中使用)

mkdir /mnt/sdb1
mount /dev/sdb1 /mnt/sdb1
mount --bind /dev /mnt/sdb1/dev
mount --bind /sys /mnt/sdb1/sys
mount --bind /proc /mnt/sdb1/proc
chroot /mnt/sdb1

现在,/etc/fstab根据情况编辑和更改安装点,知道您的磁盘sda之前可能被标记过,现在它将被命名为sdb

如果您使用默认的引导加载程序,lilo请编辑/etc/lilo.conf并在引导部分中将行更改 boot = /dev/sdaboot = /dev/sdb 并将root行更改为

image = /boot/vmlinuz
root = /dev/sdb1       <-- change here to sdb1
label = Slackware64
vga = 773
initrd = /boot/initrd.gz
read-only

现在运行/sbin/lilo,以便可以lilo使用新定义再次安装。

您应该检查的最后一件事是您是否正在使用initrd。如果您没有对启动过程进行任何修改,则可能您没有使用它,因此上述过程就足够了。如果您正在使用initrd,请查看/usr/share/mkinitrd/mkinitrd_command_generator.sh构建新的initrd.

答案2

您需要告诉内核在哪里可以找到根文件系统。目前,它在需要根文件系统的地方找到了一个 NTFS 文件系统,而根文件系统可能无法容纳所需的内容(如内核抱怨所示No init found)。

要对此进行测试,请在引导加载程序中编辑内核命令行并编辑或附加参数root=。它可能说的是root=/dev/sda1现在的事情;将设备名称更改ab指向第二个硬盘驱动器上的同一分区。根据您的系统在硬件方面的具体设置方式,它也可能是或者ce如果所有其他方法都失败,请尝试从 开始的每个小写字母a)。

系统启动后,对引导加载程序配置进行相应的更改。我不知道 Slackware 的具体做法是什么,但查看/boot/grub/menu.lst可能是一个好的开始。

相关内容