我首先安装了 slackware,并将驱动器安装在 HDD1 插槽中,然后在获得 HDD2 的托架后,我将 slackware 驱动器重新连接到 HDD2 插槽。 (我的 HDD1 上有 Windows)。
有没有办法从 HDD2 启动 slackware(我的系统是 Dell Studio 笔记本电脑)而无需重新安装?单独重新安装是否有效?
这是启动挂断之前的最后几行:
答案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/sda
为boot = /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
现在的事情;将设备名称更改a
为b
指向第二个硬盘驱动器上的同一分区。根据您的系统在硬件方面的具体设置方式,它也可能是或者c
(e
如果所有其他方法都失败,请尝试从 开始的每个小写字母a
)。
系统启动后,对引导加载程序配置进行相应的更改。我不知道 Slackware 的具体做法是什么,但查看/boot/grub/menu.lst
可能是一个好的开始。