您现在的位置是:首页 >技术教程 >Manjaro的EFI系统分区迁移(通用Linux)网站首页技术教程

Manjaro的EFI系统分区迁移(通用Linux)

Hacah 2024-06-17 10:18:46
简介Manjaro的EFI系统分区迁移(通用Linux)

EFI系统分区迁移

前言

我是用的是Manjaro,由于当时/home目录的分区太小了,而Linux上扩展分区只能连续的分区中扩展,我的efi堵在了中间,所以就想把他迁移到另一个分区,顺利扩展/home目录分区。

步骤

以下是在同一个硬盘中迁移中的EFI系统分区的详细步骤:

  1. 打开终端,并使用以下命令卸载要迁移的EFI系统分区:
sudo umount /boot/efi
  1. 使用 lsblk 命令或其他分区工具查看硬盘的分区布局,确定要迁移的EFI系统分区及其设备文件名和UUID。

  2. 使用以下命令创建一个与要迁移的EFI系统分区大小相同的新分区:

sudo fdisk /dev/sda
n
p
<Enter>
<Enter>
<Enter>
t
<Enter>
1c
w

其中,/dev/sda 是硬盘的设备文件名,n 命令创建新分区,p 命令指定分区类型为主分区,t 命令更改分区类型,1 是要更改的分区编号,c 是EFI系统分区的类型代码,w 命令将更改写入硬盘。

  1. 格式化新分区为FAT32文件系统:
sudo mkfs.vfat -F32 /dev/sdaY

其中,/dev/sdaY 是新分区的设备文件名,Y 是新分区的编号。

  1. 挂载原始EFI系统分区和新分区:
sudo mount /dev/sdaX /mnt
sudo mount /dev/sdaY /mnt2

其中,/dev/sdaX 是要迁移的EFI系统分区的设备文件名,/dev/sdaY 是新分区的设备文件名,/mnt/mnt2 是挂载点。

  1. 使用以下命令将原始EFI系统分区的内容复制到新分区:
sudo cp -a /mnt/. /mnt2/

其中,/mnt/ 是原始EFI系统分区的挂载点,/mnt2/ 是新分区的挂载点。

  1. 更新新分区的 /etc/fstab 文件,并将新分区的UUID添加到其中:
sudo blkid /dev/sdaY

其中,/dev/sdaY 是新分区的设备文件名,它将返回新分区的UUID。

打开 /etc/fstab 文件,将新分区的UUID添加到其中,例如:

UUID=<new_partition_uuid> /boot/efi vfat umask=0077 0 2

其中,<new_partition_uuid> 是新分区的UUID,/boot/efi 是新分区的挂载点,vfat 是新分区的文件系统类型,umask=0077 表示使用安全的挂载选项,0 表示在备份时不需要备份该分区,2 表示在启动时需要挂载该分区。

同时注意把原/boot/efi的挂载分区注释掉。使用新的分区就行。

  1. 卸载原始EFI系统分区和新分区:
sudo umount /mnt
sudo umount /mnt2
  1. 使用以下命令将新分区挂载为EFI系统分区:
sudo mount /dev/sdaY /boot/efi

现在,您已经成功地将Manjaro中的EFI系统分区迁移到同一个硬盘中的新分区上。请重启系统以确保新分区能够正常工作。

修改fstab和grub分区设置

由于efi引导分区改变,所以在系统引导和加载时需要修改配置,如下

修改fstab文件,将boot分区的UUID修改为新的boot分区的UUID

$ vim /etc/fstab

同时grub引导程序中仍然使用就得boot分区,所有也需要进行修改

sudo grub-install /dev/sda
sudo grub-mkconfig -o /boot/grub/grub.cfg

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。