我在新硬盘上安装了 Debian Jessie,并想从这个新磁盘启动。在 Debian 设置结束时,我还选择了设置 Grub。但启动时,Grub 会进入救援模式,并出现“文件未找到”错误。我尝试了一些我找到的指南来尝试重新安装它,但没有成功。
这是我的配置(我在实时 Knoppix 发行版上启动)
knoppix@Microknoppix:~$ lsblk -f
NAME FSTYPE LABEL MOUNTPOINT
sda
└─sda1 ext4
sdb
├─sdb1 ext4
├─sdb2
└─sdb5 swap
sdc
└─sdc1 ntfs Stock
sdd
├─sdd1 ext4 Debian
├─sdd2
└─sdd5 swap
sdh
└─sdh1 ntfs My Passport
sr0 iso9660 KNOPPIX /mnt-system
sr1 udf WD SmartWare
zram0 swap [SWAP]
cloop0 iso9660 KNOPPIX_FS /KNOPPIX
黑子
/dev/cloop0: LABEL="KNOPPIX_FS" TYPE="iso9660"
/dev/zram0: UUID="770d53d4-32d4-4810-988a-ffb80edecc8f" TYPE="swap"
/dev/sda1: UUID="2a0bdecf-9074-40de-8d23-bcaf01af17bb" TYPE="ext4"
/dev/sdb1: UUID="a4eaeb3b-27d1-4285-a364-fcdfa601fb82" TYPE="ext4"
/dev/sdb5: UUID="76381585-358a-46a1-bc16-feb51b08fe90" TYPE="swap"
/dev/sdc1: LABEL="Stock" UUID="A2904C19904BF1F9" TYPE="ntfs"
/dev/sdd1: LABEL="Debian" UUID="c45c0acc-f414-4c3e-a4ba-b3c1a33c3cbd" TYPE="ext4"
/dev/sdd5: UUID="2f0c8892-f4a8-4312-bc19-1e8d72f23e6c" TYPE="swap"
/dev/sr0: LABEL="KNOPPIX" TYPE="iso9660"
/dev/sdh1: LABEL="My Passport" UUID="325220A852207331" TYPE="ntfs"
/dev/sr1: LABEL="WD SmartWare" TYPE="udf"
分手了
(parted) print all
Model: ATA Maxtor 7V250F0 (scsi)
Disk /dev/sda: 251GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 251GB 251GB primary ext4 boot
Model: ATA Maxtor 7V300F0 (scsi)
Disk /dev/sdb: 300GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 284GB 284GB primary ext4
2 284GB 300GB 16.1GB extended
5 284GB 300GB 16.1GB logical linux-swap(v1)
...
grub.cfg 文件包含这个看起来正确的内容
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2a0bdecf-9074-40de-8d23-bcaf01af17bb' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 2a0bdecf-9074-40de-8d23-bcaf01af17bb
else
search --no-floppy --fs-uuid --set=root 2a0bdecf-9074-40de-8d23-bcaf01af17bb
fi
echo 'Loading Linux 3.16.0-4-amd64 ...'
linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=2a0bdecf-9074-40de-8d23-bcaf01af17bb ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.16.0-4-amd64
}
请注意,.mod 文件位于单独的目录 /boot/grub/i386-pc 中,这通常吗?
感谢您帮助我了解出了什么问题以及如何解决这个问题?
答案1
grub 配置中的这一行set root='hd0,msdos1'
告诉 grub 您要使用的文件系统的根目录位于第一个磁盘的第一个分区中,与 /dev/sda1 相同。
您的分开输出显示 /dev/sda1 设置了可引导标志,但另一个分区 /dev/sdd1 是标记为“Debian”的分区,我假设您的根文件系统位于其中。如果确实如此,您将需要编辑 grub.cfg,以便 grub 能够使用正确的磁盘。
我建议备份 grub.cfg,然后将行更改set root='hd0,msdos1'
为set root='hd3,msdos1'
并在您看到提到 hd0 的任何地方重复该更改。然后使用parted为/dev/sdd1设置可启动标志并尝试启动Debian。祝你好运!