我这个场景可能相对比较冷门吧,以前archlinux 的grub引导坏了,我会用U盘做个archlinux的启动盘,然后重新安装一下grub就可以了。过程与系统安装过程中安装引导是一致的。
详细见:
《2026 安装archlinux笔记》
https://blog.csdn.net/lxyoucan/article/details/164288051
今天想换个方法,能否用安装在U盘之中的archlinux来修复我的引导呢?
原因:
- 我的U盘里有很多东西,我做U盘启动盘,就要备份一下文件太麻烦了。
- 我手头有一个移动硬盘里有现成可启动的archlinux。
硬盘结构
[root@archlinux ~]# fdisk -lDisk /dev/sda:223.57 GiB,240057409536 字节,468862128 个扇区 磁盘型号: SA400S37240G 单元:扇区 /1*512=512字节 扇区大小(逻辑/物理):512 字节 /512字节 I/O 大小(最小/最佳):512 字节 /33553920字节 磁盘标签类型:gpt 磁盘标识符:DEFDEFB9-E658-4450-81E3-B304E079BBB1 设备 起点 末尾 扇区 大小 类型 /dev/sda12048616447614400300M EFI 系统 /dev/sda2616448215879672097152010G Linux swap /dev/sda321587968468860927447272960213.3G Linux 文件系统 Disk /dev/nvme0n1:476.94 GiB,512110190592 字节,1000215216 个扇区 磁盘型号:YMTC YMSS2ED06B66MC 单元:扇区 /1*512=512字节 扇区大小(逻辑/物理):512 字节 /512字节 I/O 大小(最小/最佳):4096 字节 /4096字节 磁盘标签类型:gpt 磁盘标识符:608A7AD3-F1E6-4DF2-9689-8AB75AD41031 设备 起点 末尾 扇区 大小 类型 /dev/nvme0n1p12048534527532480260M EFI 系统 /dev/nvme0n1p25345285672953276816M Microsoft 保留 /dev/nvme0n1p3567296419999743419432448200G Microsoft 基本数据 /dev/nvme0n1p44199997444621475834214784020.1G Microsoft 基本数据 /dev/nvme0n1p5996118528100021452740960002G Windows 恢复环境 /dev/nvme0n1p6462147584952881151490733568234G Linux 文件系统 /dev/nvme0n1p79528811529961185274323737620.6G Linux swap 分区表记录没有按磁盘顺序。- /dev/sda是移动硬盘
- /dev/nvme0n1 是电脑内置硬盘
我现在要修复的是/dev/nvme0n1p1 之中的引导程序。
挂载
# 挂载swapswapon/dev/nvme0n1p7mount/dev/nvme0n1p6 /mntmkdir/mnt/bootmkdir/mnt/boot/EFImount/dev/nvme0n1p1 /mnt/boot/EFI安装工具软件
如果你是在已经安装好的 Arch Linux 系统里,想用它去修复另一个 Arch 系统、移动硬盘里的 Arch,直接安装 arch-install-scripts 就可以了。
sudopacman-Sarch-install-scripts将root更改为硬盘中的系统:
sudoarch-chroot /mnt安装引导
#取名为GRUB 并将grubx64.efi安装到之前的指定位置grub-install--target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=GRUB最后生成 GRUB 所需的配置文件
grub-mkconfig-o/boot/grub/grub.cfgexit# 退回安装环境#umount-R/mnt# 卸载新分区reboot# 重启