从分区引导ISO镜像:
(hd0,6)只是一个例子,你需要根据你拥有的分区进行更改。
获取ISO文件(显然)
选择要从中引导ISO镜像的分区。它不需要是特殊的分区,可以是任何格式,至少是FAT、NTFS、EXT*(我没有尝试其他格式)(如果您想要持久性,必须使用FAT格式)。它可以包含其他数据,不会有影响。记下它是哪个分区,例如/dev/sda6
将ISO文件复制到您的分区。为了整理起见,您可以在分区的根目录下创建一个名为/isoboot/
的文件夹,然后再创建一个以系统名称命名的子文件夹,并将ISO文件粘贴到其中。
挂载ISO文件。最简单的方法是在文件浏览器中右键单击文件,选择上下文菜单中的"使用磁盘映像挂载器打开"
选项。
一旦挂载成功,进入目录/boot/grub/
,并复制文件grub.cfg
。将其粘贴到/isoboot/<your_system_name>
目录中。
在Ubuntu中,使用sudo权限打开文件/etc/grub.d/40_custom
。添加以下菜单项:
menuentry '您的ISO系统名称' {
set root='hd0,6' # 这表示/dev/sda6
configfile /isoboot/<your_system_name>/grub.cfg
}
运行update-grub
命令。
这在每个ISO上都不同,grub配置文件的名称可能不同。
配置ISO grub.cfg文件,系统救援CD
使用您喜欢的文本编辑器打开文件并进行以下更改:
在文件的顶部添加以下行:
```
set isofile=/isoboot/systemrescuecd-6.0.3.iso
loopback loop $isofile
probe -u $root --set=rootuuid
set imgdevpath="/dev/disk/by-uuid/$rootuuid"
```
在菜单项中加粗的文本如下:
```
menuentry "使用默认选项启动SystemRescueCd" {
set gfxpayload=keep
linux
(loop)/sysresccd/boot/x86_64/vmlinuz archisobasedir=sysresccd archisolabel=SYSRCD603
img_loop=$isofile img_dev=$imgdevpath
initrd
(loop)/sysresccd/boot/intel_ucode.img
(loop)/sysresccd/boot/amd_ucode.img
(loop)/sysresccd/boot/x86_64/sysresccd.img
}
menuentry "启动SystemRescueCd并将系统复制到内存" {
set gfxpayload=keep
linux
(loop)/sysresccd/boot/x86_64/vmlinuz archisobasedir=sysresccd archisolabel=SYSRCD603 copytoram
img_loop=$isofile img_dev=$imgdevpath
initrd
(loop)/sysresccd/boot/intel_ucode.img
(loop)/sysresccd/boot/amd_ucode.img
(loop)/sysresccd/boot/x86_64/sysresccd.img
}
```
配置ISO grub.cfg文件,引导修复
使用您偏好的文本编辑器打开文件,并进行以下更改:
在文件的顶部添加以下行:
set isofile=/isoboot/boot-repair/boot-repair-disk-64bit.iso
loopback loop $isofile
在菜单项中加粗的文本:
menuentry "Boot-Repair-Disk session" {
set gfxpayload=keep
linux (loop)/casper/vmlinuz.efi file=/cdrom/preseed/lubuntu.seed boot=casper quiet splash iso-scan/filename=$isofile --
initrd (loop)/casper/initrd.lz
}
配置ISO grub.cfg文件,带有持久化的Ubuntu
这里我们将使用ubuntu-16.04.6-desktop-i386.iso
警告:为了使持久化工作,文件系统类型必须是FAT
如何创建casper-rw文件
将casper-rw
文件复制到ISO旁边
用您喜欢的文本编辑器打开grub.cfg
文件并进行以下更改:
在文件的顶部添加以下行:
set iso_path=/isoboot/ubuntu/ubuntu-16.04.6-desktop-i386.iso
loopback loop $iso_path
在菜单项中加粗的文本:
menuentry "尝试不安装Ubuntu" {
linux (loop)/casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=${iso_path} quiet splash persistent persistent-path=/isoboot/ubuntu ---
initrd (loop)/casper/initrd
}
menuentry "安装Ubuntu" {
linux (loop)/casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity iso-scan/filename=${iso_path} quiet splash ---
initrd (loop)/casper/initrd
}
menuentry "检查光盘错误" {
linux (loop)/casper/vmlinuz boot=casper integrity-check iso-scan/filename=${iso_path} quiet splash ---
initrd (loop)/casper/initrd
}
menuentry "测试内存" {
linux16 (loop)/install/mt86plus
}
从
grub>
终端访问系统
grub> configfile (hd0,6)/isoboot/<your system folder>/grub.cfg
dd
将我的 ISO 文件写入到闪存驱动器中,所以我只需将 of=/dev/sd?? 设置为你想要写入的分区,而不是通常使用的闪存驱动器。注意:如果你对dd
(数据转储)不熟悉,请小心使用,如果给出错误的参数,它会覆盖整个硬盘/固态硬盘。 - guiverc