作为使用linux五年多的老用户系统已经成为linux系统粉丝,不Windows系统不好用,但是Linux无论是大问题还是小问题,系统都提供了更好的用户体验,让用户对系统有更清晰的控制感,总有明确的错误信息和操作日志记录,便于排查原因解决问题,linux系统要比Windows系统更友好。
linux该系统给用户充分定制的可能性,用户可以使用成熟shell脚本个性化地切割和设置系统,特别是在LFS实践用户是对的linux系统有更深入的了解。定制好的linux系统通常以ISO在没有光驱和U盘的情况下,通过镜像测试存储GRUB2设置相应的启动菜单,可以完全测试定制系统ISO镜像。
早期GRUB和LILO两者最常见Linux标准引导程序称为启动管理器linux目前,系统的发展GRUB由于它具有以下优点,因此已成为更好的选择:
首先,它支持许多文件系统,包括但不限于ext4 、HFS 和NTFS文件系统,这意味着可以ISO其次,在这些文件系统中存储镜像文件,GRUB2支持从LVM和RAID文件直接间直接读取,GRUB2支持网络,所以可以ISO在网络上存在镜像文件,并通过TFTP协议读取。重要的是,GRUB2对传统BIOS和现代的UEFI当然,固件有很好的支持,UEFI提前关闭模式secure boot,否则会出现can not find command loopback报错信息。
GRUB引导菜单可以编辑/2etc/grub.d/40_custom文件,典型的GRUB2引导ISO镜像文件的写法如下:
menuentry "ubuntu-20.04.2.0-desktop-amd64.iso"{ insmod ext2 set isofile="/home/linuxbabe/Downloads/ubuntu-20.04.2.0-desktop-amd64.iso" loopback loop (hd0,5)$isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash initrd (loop)/casper/initrd}
上面的menuentry是GRUB2.指导菜单条目,随意取名。
上面的insmod是GRUB如果在引导过程中使用的模块ISO存储镜像文件ext在4文件系统中,需要insmod ext2;如果ISO存储镜像文件NTFS需要在文件系统中insmod ntfs。
上面的insmod是GRUB如果在引导过程中使用的模块ISO存储镜像文件ext在4文件系统中,需要insmod ext2;如果ISO存储镜像文件NTFS需要在文件系统中insmod ntfs。
上面的set isofile是指定ISO镜像文件存储路径。
上面的loopback是指将ISO将镜像文件挂载为虚拟硬盘,这第五个分区。
上面的linux是指定linux参考系统内核路径ISO镜像文件中的路径。
上面的initrd是指装载linux从基本系统到内存,初始化linux系统。
需要注意的是,在这里linux在系统命名规则中,传统的IDE接口硬盘一般命名为/dev/hda,将SCSI和SATA接口硬盘一般命名为/dev/sda,固态硬盘一般命名为/dev/nvme0n1或/dev/nvme1n但是,在GRUB第一的第一块硬盘总是被命名为hd0,不管这个硬盘的接口类型是什么,另外GRUB2中硬盘分区号从1开始,不从0开始。注意,在MBR在分区硬盘中,第一个逻辑分区从5开始,然后依次类比逻辑分区。
添加修改后GRUB菜单条目启动后,执行以下命令之一,更新指导菜单,这取决于系统中的安装GRUB2的情况:sudo grub-mkconfig -o /boot/grub/grub.cfgsudo grub2-mkconfig -o /boot/grub2/grub.cfg
而在debian、Ubuntu、Linux Mint等linux发行版中,使用以下命令:sudo update-grub
重启计算机后,可以看到新的GRUB引导菜单条目。
例如Kali Linux的ISO镜像文件可编辑如下:menuentry "kali-linux-2021.1-live-amd64.iso"{ insmod ext2 set isofile="/home/linuxbabe/Downloads/kali-linux-2021.1-live-amd64.iso" loopback loop (hd0,5)$isofile linux (loop)/live/vmlinuz boot=live findiso=$isofile initrd (loop)/live/initrd.img}