Manjaro21-Win10-Xfce双系统引导修复2021-07-02

Manjaro21-Win10-Xfce双系统引导修复2021-07-02,第1张

MBR修复  !!!!!!!!!!!!(实体机以及vbox虚拟机中测试通过)

1.lsblk

2.sudo fdisk -l

3.sudo mount /dev/sdXXX /mnt

4.sudo mount /dev/sdXXX /mnt/boot

5.sudo manjaro-chroot -a

6.grub-probe -t device /boot/grub

7.sudo grub-install /dev/sda

8.sudo grub-install --recheck /dev/sda

9.update-grub

efi修复(vbox虚拟机中测试通过)

1.lsblk

2.sudo fdisk -l

3.sudo mount /dev/sdXXX /mnt

4.sudo mount /dev/sdXXX /mnt/boot

5.sudo mount /dev/sdXXX /mnt/boot/efi

5.sudo manjaro-chroot -a

6.sudo pacman -S os-prober grub efibootmgr

7.grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro

8.grub-mkconfig -o /boot/grub/grub.cfg

9.update-grub

10.ls -l /dev/disk/by-uuid/  #查看UUID

11.sudo gedit /etc/fstab  #编辑 /etc/fstab 文件,查看EFI分区的UUID,修改挂载后需要修复系统(源系统)的/etc/fstab文件EFI分区的UUID(×××这一步因为自己疏忽,1个月才弄明白并解决!!!×××)

manjaro-xfce efi修复(实体机以及vbox虚拟机中测试通过)

最近安装了xfce版本(GPT模式),修复引导好像又不太一样了,主要问题是

sudo manjaro-chroot -a 命令后 提示:升橡No linux partitions detected ! (无Linux分区被检测出)

解决方法:

1.lsblk

2.sudo fdisk -l

3.sudo mount /dev/sdXXX /mnt

4.cd /mnt/@

5.sudo manjaro-chroot .    (注意后面有个英文句号点结果出现sh-5.1# )

6.sudo su 

7.lsblk

8.sudo mount /dev/sdXXX /mnt/boot

9.sudo mount /dev/sdXXX /mnt/boot/efi

10.grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro

11.grub-mkconfig -o /boot/grub/grub.cfg

12.update-grub

13.ls -l /含衫dev/disk/by-uuid/  #查看UUID

14.sudo gedit /etc/fstab  #编辑 /etc/fstab 文件,查看EFI分区的UUID,修改挂载后需要修复系统(源系统)的/etc/fstab文件EFI分区的UUID(×××  这一步相当重要!!!×××)

[manjaro@manjaro ~]$ lsblk

NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS

loop0    7:0    0 130.5M  1 loop /run/miso/sfs/livefs

loop1    7:1    0 581.8M  1 loop /run/miso/sfs/mhwdfs

loop2    7:2    0  1.5G  1 loop /run/miso/sfs/desktopfs

loop3    7:3    0 695.2M  1 loop /run/miso/sfs/rootfs

sda      8:0    0    30G  0 disk

├─sda1  8:1    0  300M  0 part

├─sda2  8:2    0  26.7G  0 part

└谈笑腔─sda3  8:3    0    3G  0 part

sr0    11:0    1  2.9G  0 rom  /run/miso/bootmnt

[manjaro@manjaro ~]$ sudo mount /dev/sda2 /mnt

[manjaro@manjaro ~]$ cd /mnt/@

[manjaro@manjaro @]$ sudo manjaro-chroot .

sh-5.1# sudo su

[manjaro /]# lsblk

NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS

loop0    7:0    0 130.5M  1 loop

loop1    7:1    0 581.8M  1 loop

loop2    7:2    0  1.5G  1 loop

loop3    7:3    0 695.2M  1 loop

sda      8:0    0    30G  0 disk

|-sda1  8:1    0  300M  0 part

|-sda2  8:2    0  26.7G  0 part /

`-sda3  8:3    0    3G  0 part

sr0    11:0    1  2.9G  0 rom 

[manjaro /]# mount /dev/sda1 /boot/efi

[manjaro /]# lsblk

NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS

loop0    7:0    0 130.5M  1 loop

loop1    7:1    0 581.8M  1 loop

loop2    7:2    0  1.5G  1 loop

loop3    7:3    0 695.2M  1 loop

sda      8:0    0    30G  0 disk

|-sda1  8:1    0  300M  0 part /boot/efi

|                                /boot/efi

|-sda2  8:2    0  26.7G  0 part /

`-sda3  8:3    0    3G  0 part

sr0    11:0    1  2.9G  0 rom 

[manjaro /]# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro-xfce

Installing for x86_64-efi platform.

Installation finished. No error reported.

[manjaro /]# grub-mkconfig -o /boot/grub/grub.cfg

Generating grub configuration file ...

Found theme: /usr/share/grub/themes/manjaro/theme.txt

Found linux image: /boot/vmlinuz-5.13-x86_64

Found initrd image: /boot/amd-ucode.img /boot/initramfs-5.13-x86_64.img

Found initrd fallback image: /boot/initramfs-5.13-x86_64-fallback.img

Warning: os-prober will be executed to detect other bootable partitions.

Its output will be used to detect bootable binaries on them and create new boot entries.

Adding boot menu entry for UEFI Firmware Settings ...

Detecting snapshots ...

Info: Separate boot partition not detected

Found snapshot: 2021-10-12 10:33:04 | timeshift-btrfs/snapshots/2021-10-12_10-33-04/@

Found snapshot: 2021-10-12 10:03:56 | timeshift-btrfs/snapshots/2021-10-12_10-03-56/@

Found snapshot: 2021-10-11 23:14:18 | timeshift-btrfs/snapshots/2021-10-11_23-14-18/@

Found 3 snapshot(s)

Unmount /tmp/grub-btrfs.vU8JAqwDVa .. Success

Found memtest86+ image: /boot/memtest86+/memtest.bin

[manjaro /]# update-grub

Generating grub configuration file ...

Found theme: /usr/share/grub/themes/manjaro/theme.txt

Found linux image: /boot/vmlinuz-5.13-x86_64

Found initrd image: /boot/amd-ucode.img /boot/initramfs-5.13-x86_64.img

Found initrd fallback image: /boot/initramfs-5.13-x86_64-fallback.img

Warning: os-prober will be executed to detect other bootable partitions.

Its output will be used to detect bootable binaries on them and create new boot entries.

Adding boot menu entry for UEFI Firmware Settings ...

Detecting snapshots ...

Info: Separate boot partition not detected

Found snapshot: 2021-10-12 10:33:04 | timeshift-btrfs/snapshots/2021-10-12_10-33-04/@

Found snapshot: 2021-10-12 10:03:56 | timeshift-btrfs/snapshots/2021-10-12_10-03-56/@

Found snapshot: 2021-10-11 23:14:18 | timeshift-btrfs/snapshots/2021-10-11_23-14-18/@

Found 3 snapshot(s)

Unmount /tmp/grub-btrfs.twft2UQWUC .. Success

Found memtest86+ image: /boot/memtest86+/memtest.bin

done

[manjaro /]# ls -l /dev/disk/by-uuid/

total 0

lrwxrwxrwx 1 root root  9 Oct 16 02:36 2021-09-27-19-59-50-00 ->../../sr0

lrwxrwxrwx 1 root root 10 Oct 16 02:36 4a7e5641-2d0a-4405-bac6-b19df8c28da0 ->../../sda2

lrwxrwxrwx 1 root root 10 Oct 16 02:36 A0A9-5D01 ->../../sda1

lrwxrwxrwx 1 root root 10 Oct 16 02:36 f07a29bf-d167-401d-9718-09862396d3bb ->../../sda3

[manjaro /]# sudo nano /etc/fstab

[manjaro /]# exit

exit

sh-5.1# exit

exit

umount: /mnt/@: target is busy.

[manjaro@manjaro @]$ reboot

去年暑假的时候,写了一篇如何装 Linux 和 Windows 10 双系统的文章发在了上,我写这篇文章的原因是当初装双系统确实是折腾了许久,网上也找不到一篇详尽的教程。由于去年对于写教程还不是熟练,而这一年多的使用过程也遇到了一些问题,所以就准备「Refactoring」这篇文章。

在教程正式开始之前,先花一点时间说明 EFI 分区的组成和作用。

首先,在你装了 Windows 之后,Windows 在装机过程中会将硬盘划分出一个约 100m 大小的分区,称为 EFI 分区这个分区就是起引导作用的。在资源管理器中是看不到的这个分伍纯盯区的,可以在磁盘管理中看到,管理则需要借助 DG 工具 。便于说明,在装好了 Linux 之后,我将 EFI 挂载至 boot 分区截图:

可以看到,该分区包含 3 个文件夹(如果你没有装 Linux 的话,就只有两个),分别是 Boot、Microsoft 和 Manjaro,其中 Boot 文件夹就是 UEFI 引导所必需的文件。

我们继续打开 Microsoft/Boot 文件夹:

这些文件就是启动 Windows 10 所必需的,包含了语言包、字体等,BCD 包含了 Windows 引导开始以后的信息。其中, bootmgfw.efi 是 Windows 默认引导文件

以上是采用 UEFI 启动 Windows 10 的文件结构,也就是说,当你按下开机按钮的时候,首先 UEFI 找到 EFI 分区的 Boot 文件夹,然后加载 bootx64.efi 文件,读取文件信息,找到 EFI/Microsoft/Boot/bootmgfw.efi ,按照 bootmgfw.efi 的要求,加载所需的启动信息,启动 Windows 10。

在正式装系统之前,我们还需要做一些准备工作:

这个功能的作用是在于关机的时候不完全断电,类似将系统处于「休眠」状态,这样可以让开机更加迅速。但这也就导致了只能使用 Windows 系统。

在默认情况下,UEFI 固件只会加载那些被签名的引导程序。在缺少 Secure Boot 功能的传统 PC 机上,恶意的后门程序可以加载自身,进而摇身一变伪装成一个引导程序。这样的话,BIOS 就会在启动的时候加载后门程序,这样它就可以躲过 *** 作系统,把自己隐藏得很深。

但是不得不说,这对我们安装 Linux 造成了很大的困扰,也是直接导致我们重启到 Windows 10 后进不去 Linux 的原因。

首先我们要关闭这个功能:进入 BIOS 找到 Secure Boot,选择腔和 disabled,这样就关闭了。当然,有些人进入 BIOS 会发现 Secure Boot 这个选项是灰色的(比如我的就是),这时你需要先给你的 BIOS 设一个密码,然后就能关 Secure Boot 了。

所有的准备都已经完成,这时就可以准备刻录 U 盘了,不推荐 UltraISO,经亲测,软碟通仅刻录 Ubuntu 能成功,其它绝大多数发行版都会失败。推荐「 Rufus 」和「 USBWriter 」,这两个软件都可以。

刻录完成后,重启按 f12 ,选择从 USB 设备启动,对于绝大多数发行版来说一路回车就行了,只需要注意一点: 在选择挂载 boot 位置的时候,一定要挂载在 efi 分区 ,别的都不行。

重启之后,不出意外的话,你会直接进入 Windows 10,不要担心,这时 Linux 已经安装成功了,我们只需要将引导文件替换一下。

先用 DG 打开 EFI 分区,你会看到多了一个文件夹,名称取决于你安装的是哪一个发行版。我安装的是 Manjaro Linux,名称就是 Manjaro,打开之后会发现里面有一个名为 grubx64.efi 的文件,这就是启动 Linux 的引导文件裤扰。和 Windows 10 的 bootmgfw.efi 类似,我们想要用 grubx64.efi 引导代替掉 bootmgfw.efi,这样就可以用 GRUB 引导了。步骤:

至此,如果你安装的是除 Arch 之外绝大多数发行版,那么接下来就和你没有啥关系了,你已经成功了,好好享受吧!

开机之后会发现进入 GRUB 的引导了,通常会包含至少三个选项(以 Manjaro 举例):Manjaro、Manjaro 高级选项和 Windows Manager。这就代表你已经完美的解决了 Windows 和 Linux 双系统引导的问题。

这一点是我安装 Arch Llinux 的时候发现的,Arch Linux 安装过程是手动安装的,在编写 GRUB 的时候会扫描不到 Windows Manager 所在的分区(当然可能不是所有人都会遇到),所以在 GRUB 界面可能会看不到 Windows Manager 选项,导致进不去 Windows 10,这里就需要手动编辑 GRUB 信息,我们打开 /boot/grub/grub.cfg 文件,发现里面确实没有 Windows 10 的启动信息,在后面加上:

注意

这里的 $hints_string ,代表的是终端执行命令:

后的输出;

而 $fs_uuid 代表的是:

的输出。

然后保存。在终端执行命令: sudo grub-mkconfig -o /boot/grub/grub.cfg ,就 OK 了。

到此,Arch Linux 和 Windows 10 双系统也配置完毕了。

在使用这一年多的时间,遇到了以下的几个问题:

最后:祝使用愉快。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12306839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存