我使用的是 SSD,其中有 3 个分区:
$ lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 108G 0 part /
└─sda3 8:3 0 3.8G 0 part /mnt
并被格式化为 XFS /dev/sda2
。/dev/sda3
我不再需要它/dev/sda3
了,那里没有任何数据,我想将它与 /dev/sda2 合并。如果我必须取消分配,这不是一个大问题/dev/sda2
。但我有重要的数据和整个操作系统安装在/dev/sda2
.
有没有办法将 /dev/sda3 与 /dev/sda2 合并,从而使数据/dev/sda2
保持不变?
编辑:
在询问之前我已经尝试过 xfs_growfs 这种方式:
# xfs_growfs /dev/sda2
meta-data=/dev/sda2 isize=512 agcount=4, agsize=7077888 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=0
data = bsize=4096 blocks=28311552, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=13824, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
它没有任何作用。我还尝试删除分区 3,然后使用xfs_growfs
和/
运行/dev/sda2
。我重新启动,看到可用空间是空闲的,并且/dev/sda2
一如既往地是 108 GB。
我没有使用 LVM。
细节:
xfs_info -V
xfs_info version 5.7.0
操作系统:
$ cat /etc/os-release | head -n1
NAME="Arch Linux"
核心:
$ cat /proc/version
Linux version 5.8.5-xanmod1-1-xanmod (makepkg@archlinux) (gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP PREEMPT Wed, 02 Sep 2020 20:22:18 +0000
答案1
当然不可能合并;您在上一段中描述的是正确的方法,加上我最初错过的一个步骤:
umount /mnt
,完毕sda3
使用fdisk
或删除parted
,完毕- 扩展分区
sda2
- 使用扩展文件系统
xfs_growfs /
。
第三步有点危险。如果您有系统备份,请继续,否则使用gparted
iso。在您的实时系统上,启动fdisk /dev/sda
.p
列出分区。记下sda2的起始扇区和id类型。然后d
删除它!接下来,创建一个新分区,从与之前完全相同的扇区开始,到磁盘的最后一个扇区结束。它可能会被设置为相同的 ID 和类型,我想是 83 Linux,但也要检查一下。完成后p
,再次检查新sda2的起始扇区和id是否与旧的相同w
q
。危险的部分是,如果您错过了开始或 ID,分区数据将被破坏(不完全是这样,但您会遇到麻烦)。仅删除分区会更改表,而不会触及数据。
之后xfs_growfs /
将扩展文件系统;如果没有,内核可能需要使用partprobe
或partx
命令来了解更改。或者你可以重新启动。
删除分区来扩展它可能看起来很奇怪,但这是一个标准过程,你可以搜索它。如果您想避免这种情况,可以在未来的系统上使用 LVM。
另一种方法是下载gparted
制作启动 USB/CD,从那里启动并在简单的图形环境中完成工作。