我有一个具有以下配置的驱动器:
fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2612 20971520 83 Linux
/dev/sda3 60736 60801 525312 82 Linux swap / Solaris
有 478GB 未分配空间,我该如何添加此空间而不/dev/sda1
丢失当前的数据/dev/sda1
? (文件系统是ext4)。
注意:它是一个只有 SSH 的服务器,没有用于运行 gparted 之类的东西的 GUI。
答案1
扩大分区:fdisk -u /dev/sda
.
p
要打印分区表,请记下 sda1 的编号、开始、结束和类型。
删除它:d
:
n
使用具有相同数字 (1) 的命令重新创建它,开始并键入,但使用更大的数字结尾(注意不要与其他分区重叠)。尝试在兆字节边界上对齐事物结尾,使其成为 2048 的倍数减 1。如果需要,可使用 更改类型t
(对于保存extX
或btrfs
文件系统的分区,默认值83
即可)。
然后w
开始写作并q
退出。
分区表将被修改,但内核将无法考虑到这一点,因为某些分区已安装。
但是,如果仅扩大了正在使用的分区,您应该能够强制内核采用新的布局:
partx /dev/sda
如果失败,您需要重新启动。系统应该可以正常启动。
然后,调整文件系统的大小,使其扩展到扩大的分区范围内(可能位于/sbin
):
resize2fs /dev/sda1
即使ext4
在实时 FS 上也能正常工作。
答案2
扩展 ext4 分区非常容易成长部分。
备份当前分区表
sfdisk -d /dev/sdb > sdb_partition_bak.dmp
执行试运行看看会发生什么变化。如果你没有这个工具。跑步apt-get 安装 cloud-utils
growpart -N /dev/sdb 1
如果一切都好的话
growpart /dev/sdb 1
调整文件系统大小。可能需要 10 秒
resize2fs /dev/sdb1
检查新尺寸
df -h
答案3
当分区已安装时,您无法安全地执行此操作,这意味着您需要引导其他一些分区并从那里执行此操作。
gparted
是一个用于此目的的漂亮、简单的 GUI。在我们删除的评论交流中,您提到它不会启动,因为“无法访问显示”——这意味着您不在 X 中;因为它是一个 GUI,没有它就无法工作。
当然,如果你没有其他分区可以使用,你需要一张 Live CD 之类的东西——我思考它们通常带有 gparted。你最好的选择可能是实际的gparted 现场 CD,它看起来有一个相当新的最新稳定版本(并且适合光盘,这很好,因为“live CD”正在迅速变成“live DVD”)。
我从来没有遇到过 gparted 造成的问题,但当然首先要备份你的重要内容。
话虽如此,引用来自以下内容的内容man resize2fs
可能会引起您的兴趣:
resize2fs 程序将调整 ext2、ext3 或 ext4 文件系统的大小。它可用于放大或缩小设备上未安装的文件系统。如果文件系统已挂载,则可以使用它来扩展已挂载的文件系统的大小,假设内核和文件系统支持在线调整大小。 (现代 Linux 2.6 内核将支持使用 ext3 和 ext4 挂载的文件系统在线调整大小;ext3 文件系统将需要使用启用了 resize_inode 功能的文件系统。)
但请记住,这是关于文件系统扩展这是一个不同的操作分区扩展(必须在文件系统扩展之前完成)。因此,如果您可以获得任何工具来在安装分区时扩展分区,确保保持完全相同的起始块,您可以就地扩展 rootfs。
答案4
我发现parted
比删除并重新创建分区更简单、更安全fdisk
:
sudo parted /dev/sda
print
resizepart
要调整第一个分区的大小以填充磁盘,resizepart 1 -1
.我有交换空间,所以必须从命令行开始swapoff -a
,然后rm
在parted
.为了避免这个问题,我创建了一个交换文件而不是交换分区(即https://unix.stackexchange.com/a/238784/103025)。