我有一个与 SystemRescueCd v5 配合使用的配置,如下所示:
menuentry 'System Rescue Cd' {
set isofile='/systemrescuecd.iso'
loopback loop (hd3,gpt2)$isofile
linux (loop)/isolinux/rescue64 isoloop=$isofile nouveau.blacklist=1 nomodeset
initrd (loop)/isolinux/initram.igz
}
现在,根据最新版本,内容如下:
http://www.system-rescue-cd.org/manual/Installing_SystemRescueCd_on_the_disk/
看起来像这样:
menuentry "SystemRescueCd (isoloop)" {
load_video
insmod gzio
insmod part_gpt
insmod part_msdos
insmod ext2
search --no-floppy --label boot --set=root
loopback loop /systemrescuecd.iso
echo 'Loading kernel ...'
linux (loop)/sysresccd/boot/x86_64/vmlinuz img_label=boot img_loop=/systemrescuecd.iso archisobasedir=sysresccd copytoram setkmap=us
echo 'Loading initramfs ...'
initrd (loop)/sysresccd/boot/x86_64/sysresccd.img
}
鉴于现在我在另一个驱动器上使用 ISO,尝试将其升级为:
menuentry "SystemRescueCd (isoloop)" {
load_video
insmod gzio
insmod part_gpt
insmod part_msdos
insmod ext2
# search --no-floppy --label boot --set=root
# loopback loop /systemrescuecd.iso
set isofile='/systemrescuecd.iso'
loopback loop (hd3,gpt2)$isofile
echo 'Loading kernel ...'
linux (loop)/sysresccd/boot/x86_64/vmlinuz img_label=boot img_loop=/systemrescuecd.iso archisobasedir=sysresccd copytoram setkmap=us
echo 'Loading initramfs ...'
initrd (loop)/sysresccd/boot/x86_64/sysresccd.img
}
它随启动而启动,但随后抛出此错误:
Waiting 30 seconds for device /dev/disk/by-label/boot
你知道这可能是什么吗?
我只是尝试使用来自不同驱动器的启动 SystemRescueCd,但其余的都是一样的……
答案1
我找到了一个适合我的菜单,所以我将其粘贴到这里并写下一些评论(:
default=0
timeout=13
set gfxmode=auto
set gfxpayload=keep
insmod part_msdos
insmod part_gpt
insmod efi_gop
insmod efi_uga
insmod font
insmod gfxterm
insmod video
insmod videotest
terminal_output gfxterm
loadfont /grub/fonts/unicode.pf2
menuentry "Apagar" {
halt
}
menu "SystemRescueCD 6.0.3 [64 Bits]" {
set uuid="..."
search --no-floppy --fs-uuid --set=root $uuid
set iso="systemrescuecd-6.0.3.iso"
loopback loop /$iso
linux (loop)/sysresccd/boot/x86_64/vmlinuz scandelay=1 setkmap=es copytoram dostartx archisobasedir=sysresccd img_label=... img_loop=/$iso
initrd (loop)/sysresccd/boot/intel_ucode.img (loop)/sysresccd/boot/amd_ucode.img (loop)/sysresccd/boot/x86_64/sysresccd.img
}
在带有 的行上set uuid="..."
,而不是...
,输入 ISO 所在分区的 UUID,它将被用作 root。
在参数 上img_label=...
,而不是...
,输入 ISO 所在分区的标签,它将在 losetup 之前被挂载,因此可以找到 ISO 文件。
这对我来说是个窍门,将我的 ISO 文件的“其他”分区的标签放在其中,而不是安装了 Grub2 的分区的标签。
希望这对您和其他人有所帮助。
注 1:我必须深入尝试 SystemRescueCD 的其他版本,但我认为如果它适用于最新的 6.0.3,那么它就一定适用于 6.0.3 之前的任何 6.x(但我没有测试过)。
注意2:根本dostartx
不起作用,我必须startx
每次都打字,但是copytoram
和setkmap=es
(西班牙语键盘)可以工作。
答案2
menuentry "System Rescue CD" {
set gfxmode=auto
set gfxpayload=keep
insmod part_msdos
insmod part_gpt
insmod efi_gop
insmod efi_uga
insmod font
insmod gfxterm
insmod video
insmod videotest
terminal_output gfxterm
set uuid="#UUID"
search --no-floppy --fs-uuid --set=root $uuid
set iso="systemrescuecd-6.0.3.iso"
loopback loop /$iso
linux (loop)/sysresccd/boot/x86_64/vmlinuz scandelay=1 copytoram doxdetect archisobasedir=sysresccd img_label=#LABEL img_loop=/$iso
initrd (loop)/sysresccd/boot/intel_ucode.img (loop)/sysresccd/boot/amd_ucode.img (loop)/sysresccd/boot/x86_64/sysresccd.img
}
这是基于上述解决方案的,它可以工作,但是 X.org 失败了并且它正在设置英文键盘映射,所以我删除了它并添加了它doxdetect
以便在任何 vga 驱动程序上工作。
你看到了 #UUID 和 #LABEL,你可以从中获取分区blkid
然后它与startx一起工作