You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Manjaro旁以UEFI模式重新安装Ubuntu?

解决UEFI/Legacy双系统引导冲突问题

嘿,这个问题我碰到过好多次——本质就是你的Manjaro用UEFI模式装的,而Ubuntu不小心装成了Legacy模式,俩系统走的是完全不互通的引导路线,BIOS只能二选一。下面给你两种靠谱的解决办法,目标是把Ubuntu也转成UEFI引导,统一用UEFI模式下的Grub管理双系统,以后再也不用来回切BIOS了:

方法一:从Manjaro(UEFI模式)修复引导

我个人更推荐这个方法,因为Manjaro本身就是UEFI引导,环境更适配:

  1. 先进入Manjaro:把BIOS切回UEFI模式,正常启动Manjaro就行。
  2. 找到ESP分区:打开终端,输入命令看看磁盘分区情况:
    lsblk -f
    
    你要找的是FAT32格式、挂载点是/boot/efi的分区(通常是/dev/sda1或者NVMe固态的/dev/nvme0n1p1),记好它的设备名,后面要用。
  3. 挂载Ubuntu的根分区:同样用上面的命令,找到Ubuntu的根分区——就是那个EXT4格式、没挂载点的分区(比如/dev/sda3)。先建个临时目录挂载它:
    sudo mkdir /mnt/ubuntu
    sudo mount /dev/sda3 /mnt/ubuntu
    
  4. 把ESP分区挂到Ubuntu的引导目录
    sudo mount /dev/sda1 /mnt/ubuntu/boot/efi
    
    这里把刚才记的ESP分区设备名替换进去就行。
  5. 进入Ubuntu的系统环境:用chroot切换到Ubuntu的根目录,相当于在Manjaro里操作Ubuntu系统:
    sudo arch-chroot /mnt/ubuntu
    
    要是Manjaro没装arch-chroot,直接用sudo chroot /mnt/ubuntu也一样。
  6. 安装UEFI版的Grub:先更新下包列表,然后装UEFI版的Grub:
    apt update
    apt install grub-efi-amd64
    
    接着把Grub装到ESP分区里,给Ubuntu整个专属的引导标识:
    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
    
  7. 更新Grub配置:让Grub扫描到Manjaro系统,生成统一的引导菜单:
    update-grub
    
  8. 退出重启:输入exit退出chroot,然后sudo reboot重启电脑。记得把BIOS设置成UEFI优先,现在就能看到包含Manjaro和Ubuntu的Grub菜单了!

方法二:从Ubuntu(Legacy模式)修复引导

如果你更习惯从Ubuntu操作,也可以这么来:

  1. 进入Ubuntu:把BIOS切到Legacy模式,启动Ubuntu。
  2. 找到ESP分区:终端输入:
    sudo fdisk -l
    
    还是找那个FAT32格式、100-512MB大小的ESP分区(比如/dev/sda1)。
  3. 挂载ESP分区:先建个/boot/efi目录,把ESP分区挂进去:
    sudo mkdir /boot/efi
    sudo mount /dev/sda1 /boot/efi
    
  4. 安装UEFI版Grub:更新包后安装UEFI版Grub,安装过程中如果提示要不要把Grub装到ESP,直接选就行:
    sudo apt update
    sudo apt install grub-efi-amd64
    
  5. 更新Grub并清理Legacy引导(可选):先更新Grub让它识别Manjaro:
    sudo update-grub
    
    要是以后不想再用Legacy模式了,可以把MBR里的Legacy引导记录清掉(注意/dev/sda是你的磁盘设备名,别写错!):
    sudo dd if=/dev/zero of=/dev/sda bs=446 count=1
    
  6. 重启设置UEFI优先:重启后把BIOS改成UEFI模式,就能看到统一的引导菜单了。

小提醒

  • 操作前最好备份下重要数据,毕竟涉及分区操作,小心驶得万年船。
  • 确认磁盘设备名的时候一定要仔细,别把ESP分区或者根分区搞错了,不然容易出问题。
  • 如果是NVMe固态,设备名是/dev/nvme0n1pX这种格式,别和普通SATA盘的/dev/sdaX搞混。

内容的提问来源于stack exchange,提问作者gfte

火山引擎 最新活动