2021-07-03在不改变win10引导前提下,新增多个linux引导的方法

利用win10操作系统已有的EFI分区,在不改变默认从win10启动的前提下,通过修改grub.cfg的方法,可以实现多个系统的引导,但进入linux稍微比较麻烦。

安装puppy Linux到U盘,确认可引导

在官网https://puppylinux.com/ 下载一个最新的FossaPup64 9.5 吧,安装方法不记得了,iso的文件,应该是写入U盘就可以了。
开机从U 盘UEFI模式启动,确认能正常进入puppy的系统。
如果是最新的WiFi无线网卡,可能需要手工下载驱动,比如 AX200需要iwlwifi-cc-a0-50.ucode驱动文件。
dmesg|grep iwlwifi 可以看到无线网卡信息,记得是拷贝到某个路径下就完成驱动安装。

$ lspci |grep -i net

01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
02:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)

puppy迁移到本地D盘

把puppy的U盘内容拷贝到D盘(我的是ntfs分区),在配置好之后就可以去掉U盘,通过本地硬盘引导。

EFI分区是fat格式的,windows版本的Disk Genius估计可以实现。
如果是ext分区的,建议在linux下挂载后拷贝,win下软件不太好找,Disk Genius免费版只能拷贝小文件。

把puppy的efi/boot目录下的文件grubx64.efi和grub.cfg,拷贝到wind10的EFI分区,也是efi/boot目录。
未替换原有的bootx64.efi文件。

puppy的grub.cfg 默认内容如下,直接使用,grub应该是找不到D盘的内核vmlinuz文件,从而出现panic错误,无法启动linux。

set timeout=5
set gfxmode=auto,1024x768

menuentry 'fossapup64 9.5' --class puppy {
	linux /vmlinuz pfix=fsck pmedia=usbflash
	initrd /initrd.gz
}

确认D盘的分区编号
xxyy@xyhp:~$ lsblk

NAME        FSTYPE LABEL            UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda                                                                                     
├─sda1      vfat   COREELEC         C176-BC81                              84.7M    83% /media/xxyy/COREELEC
└─sda2      ext4   STORAGE          44a7dec3-2b8f-435c-8a3c-1ffd60445d35   23.8G    10% /media/xxyy/STORAGE
nvme0n1                                                                                 
├─nvme0n1p1 vfat   SYSTEM           D861-F479                                           
├─nvme0n1p2                                                                             
├─nvme0n1p3 ntfs   Windows          C8D0F585D0F579D0                       46.7G    64% /media/xxyy/Windows
├─nvme0n1p4 ntfs   data             C822D67B22D66E46                        382G    46% /media/xxyy/data
├─nvme0n1p5 ext4   linux            c664dd10-7cb6-8e4b-a72f-634dc6c08ba2     95G    14% /
└─nvme0n1p6 ntfs   Windows RE Tools F0C0E1BEC0E18AE4
xxyy@xyhp:~$

我的D 盘的盘符是data,对应分区编号是4,
挂载win10的efi分区
root@xyhp:~# mount /dev/nvme0n1p1 /mnt

需要在 menuentry ‘fossapup64 9.5’ 的下一行加上
set root=(hd0,gpt4)
如果不对,可以在出现操作系统选择菜单的时候,选中按e,输入hd按tab查看。

引导Linux方法

HP开机按ESC再选择F9的那个,选择Boot From File,再选中EFI/boo/grubx64.efi来引导linux。
去掉U盘,顺利的话,应该可以进入puppy。之前搞的,记不清楚了。

UOS的grub引导菜单修改

我的UOS是从虚拟机直接拷贝过来的,不是在笔记本电脑上安装的。
生成一个新的引导文件new
root@xyhp:/mnt/EFI/boot# grub-mkconfig -o new
合并成新的grub.cfg。
合并时,去掉puppy的两行

# set timeout=5
# set gfxmode=auto,1024x768

但是默认并不能引导UOS,AMD5800U识别不了。
通过尝试,发现修改点为:
1、 #set root=(hd0,gpt5)不是必须的,可以不增加,grub通过uuid识别的。
2、需要把ro修改为rw,否则会出现蓝色统信UOS闪烁后死机;需要删除DEEPIN_GFXMODE=$DEEPIN_GFXMODE;去掉quiet便于查看日志。

linux  /boot/vmlinuz-5.7.7-amd64-desktop root=UUID=c664dd10-7cb6-8e4b-a72f-634dc6c08ba2 ro quiet splash DEEPIN_GFXMODE=$DEEPIN_GFXMODE

修改后:
linux   /boot/vmlinuz-5.7.7-amd64-desktop root=UUID=c664dd10-7cb6-8e4b-a72f-634dc6c08ba2 rw splash

3、增加AMD CPU的微码,提前准备文件 /boot/amd-ucode.img,并把

initrd  /boot/initrd.img-5.7.7-amd64-desktop
修改为
initrd  /boot/amd-ucode.img /boot/initrd.img-5.7.7-amd64-desktop

记录一下windows的引导菜单

开机默认引导windows,这个菜单没有必要;如果费心进入grub后选择这个菜单,也是可以引导进入win10的。

menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-D861-F479' {
        insmod part_gpt
        insmod fat
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root  D861-F479
        else
          search --no-floppy --fs-uuid --set=root D861-F479
        fi
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值