![如何扩展位于其他分区中间的分区(或创建新分区并迁移数据)](https://linux22.com/image/774926/%E5%A6%82%E4%BD%95%E6%89%A9%E5%B1%95%E4%BD%8D%E4%BA%8E%E5%85%B6%E4%BB%96%E5%88%86%E5%8C%BA%E4%B8%AD%E9%97%B4%E7%9A%84%E5%88%86%E5%8C%BA%EF%BC%88%E6%88%96%E5%88%9B%E5%BB%BA%E6%96%B0%E5%88%86%E5%8C%BA%E5%B9%B6%E8%BF%81%E7%A7%BB%E6%95%B0%E6%8D%AE%EF%BC%89.png)
因此我需要扩展系统上的分区(/tmp),但不明白具体如何进行(我最初没有设置分区)。
以下命令显示:
fdisk -l
Disk /dev/sda: 4798.6 GB, 4798552211456 bytes, 9372172288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
# Start End Size Type Name
1 2048 411647 200M EFI System EFI System Partition
2 411648 1435647 500M Microsoft basic
3 1435648 395407359 187.9G Microsoft basic
4 395407360 446607359 24.4G Microsoft basic
5 446607360 497807359 24.4G Microsoft basic
6 497807360 549007359 24.4G Microsoft basic
7 549007360 569487359 9.8G Microsoft basic
8 569487360 585871359 7.8G Linux swap
9 585871360 6585871360 2.8T Linux filesyste
我创建的各个分区如下:
/dev/sda3 on / type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda4 on /var type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda9 on /home type ext4 (rw,relatime,data=ordered)
/dev/sda7 on /tmp type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda2 on /boot type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
/dev/sda5 on /var/log type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda6 on /var/log/audit type xfs (rw,relatime,attr2,inode64,noquota)
我看到分配了以下大小:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 188G 123G 66G 66% /
/dev/sda4 25G 3.8G 21G 16% /var
/dev/sda9 2.8T 224G 2.4T 9% /home
/dev/sda7 9.8G 46M 9.8G 1% /tmp
/dev/sda2 497M 161M 337M 33% /boot
/dev/sda1 200M 9.8M 191M 5% /boot/efi
/dev/sda5 25G 151M 25G 1% /var/log
/dev/sda6 25G 71M 25G 1% /var/log/audit
据我所见,/dev/sda8 一定已被删除并从 XFS 到 EXT4 分区重新创建。
我需要扩展 /dev/sda7 以获得更多空间,从快速统计来看,/dev/sda 大约为 5TB,而 /dev/sda1 --> /dev/sda9 只使用了 3TB 多一点的空间。这让我相信 /dev/sda 上还剩下 1-2TB。我需要在不丢失数据的情况下增加它,最好不要停机。
我“认为”我需要创建另一个分区 (/dev/sda10) 并为其分配所需的空间。然后我将运行“mkfs -t ext4 /dev/sda10”为其分配文件系统。然后更新 /etc/fstab 以将 /dev/sda10 指向 /tmp(也许先挂载 /dev/sda10 并将所有 /tmp 复制过去?)。
我这样做对吗?谢谢
答案1
您的mount
和df
输出确认这/tmp
是一个位于的已挂载文件系统/dev/sda7
。
您的fdisk
输出显示/dev/sda7
紧接着的是类型为“Linux Swap”的/dev/sda
分区/dev/sda8
。这个分区很可能被用作交换分区。(您可以使用命令来验证这一点swapon
。)如果您想就地增加,/dev/sda7
您必须/dev/sda8
先删除。
您的fdisk
输出还显示磁盘的总大小为 9372172288 个扇区,但最后一个分区/dev/sda9
以扇区 6585871360 结束。因此,最后一个分区后有 9372172288 - 6585871360 = 2786300928 个扇区(或 1.3 TB)的未分区可用空间。
这给你提供了两种可能的途径:
a) 将交换分区移至未分区的空间,并将该/tmp
分区扩展到交换分区以前占用的空间。您可以不停机执行此操作,方法是先从/dev/sda10
扇区 6585871360 开始创建一个所需大小的新交换分区,使用 激活它swapon /dev/sda10
,然后使用 停用旧交换分区swapoff /dev/sda7
。在旧交换分区清空后,您可以删除分区 8 并将分区 7 扩展到该空间。这将为您提供/tmp
最多 585871360 - 549007360 = 36864000 个扇区(或 17.6 GB)的分区。
b) 将/tmp
分区移至未分区的空间。这样您就可以将其扩展到 1.3 TB。但是,这将需要(短暂的)停机时间,因为您需要卸载当前/tmp
分区,而这在系统运行时是不可能的。