Parted:调整分区大小而不调整文件系统大小

loo*_*bee 7 linux filesystems partitioning

parted 可以在不调整底层文件系统大小的情况下调整分区大小吗?

目前,它会打印警告:

警告:您正尝试使用 parted 对文件系统进行操作(调整大小)。parted 的文件系统操作代码不如您在专用的、特定于文件系统的软件包(如 e2fsprogs)中找到的那样健壮。我们建议您尽可能仅使用 parted 来操作分区表。在即将发布的版本中将删除对在大多数类型的文件系统上执行大多数操作的支持。

小智 9

调整分区大小是一项常见任务,尤其是在使用硬件 RAID、虚拟机等时,即使在操作系统运行时,磁盘大小也可以(并且确实)更改大小。

不幸的是, parted 不会调整分区的大小(而且从来没有真正能够做到)。要实现相同的目的,您必须删除原始分区并使用新的结束地址重新创建它。您必须保持起始地址相同,否则可能会损坏所有数据。您还必须将任何标志设置回其原始值,以确保在下次引导时正确使用该分区。

在开始之前,请确保您有系统的备份!

在 parted 中,将显示单位切换到扇区u s并打印出当前值p

写下这些值是值得的,以防万一您破坏了某些东西并需要恢复原始分区。

然后删除现有分区 rm

然后创建一个新分区 mkpart

最后设置标志 toggle

退出 parted 后,您可能需要运行partprobe以使内核更新它的分区视图,例如:cat /proc/partitions

使用 LVM2 时,您可以使分区更大,然后运行pvresize /dev/...,您的新容量将可供卷组使用。然后,您可以继续使用lvresizeresize2fs或适合您的操作系统的任何内容。


all*_*tic -1

你试图做的事情往好里说是有风险和困难的,往坏了说就是灾难性的。

文件系统被设计为自己占据整个分区。拥有一个被格式化为占用少于整个分区的文件系统是“有效的”,但是尝试将无人认领的空间用于另一个文件系统将是非常麻烦的。

“调整大小”有两种类型:增大和缩小。

如果您的初始状态是一个文件系统占据整个分区,并且您增大了分区(使其更大),那么基本上意味着您调整了分区表(只是硬盘驱动器的一小部分区域中的一堆数字,格式取决于您的分区类型,例如 MBR 或 GPT),因此分配给该分区的块数将多于文件系统正在使用的块数。文件系统不会使用分区末尾的附加块,因为文件系统仍然认为它在比实际更小的分区上运行。“智能”文件系统可以轻松检测并开始使用剩余空间,但我不知道是否有真正做到这一点。无论哪种方式,您在安装驱动器时都可能至少会收到警告。

如果您尝试收缩分区(使其更小)而不收缩文件系统,您将丢失数据:当文件系统尝试写入超出分区末尾的块时,设备节点将抛出异常写入超出分区边界,文件系统将向用户空间抛出 I/O 错误。您之前在重新分区的空间中拥有的所有数据都将丢失。

不管怎样,你都是搬起石头砸自己的脚。我不知道您如何开始告诉文件系统从分区内的某个块开始安装文件系统。像这样的命令mount /dev/sda1意味着挂载从分区的最开始处开始。是的,如果您能够在其中创建文件系统,那么您将稍微模糊“隐藏分区”中任何数据的位置;但任何精明到想翻查你的硬盘的人都会很容易找到它,所以不要认为你获得了任何安全措施。

如果您担心计算机的其他用户或未经授权的人员物理访问计算机,则应使用基于强加密技术的全盘加密。如果大多数物理访问用户正在磁盘上寻找有趣的内容,那么仅仅隐藏分区不会让他们长时间感到困惑。

看看fdisk或者cfdisk你是否仍然想这样做,但是这样做会使书中的每项保修(以及一些)失效......