如何调整 LVM 分区中 fat32 文件系统的大小?

发布于 2024-10-09 04:13:47 字数 1459 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

酒废 2024-10-16 04:13:47

使用 fatresize (手册页),然后继续lvresize

为了避免截断 FS,您应该首先将 VFAT 卷缩小到比想要的多几百(安全起见)兆字节,然后调整 LVM 容器的大小,最后增大卷以填充 LVM 分区。

另外,这个问题不属于StackOverflow,而是属于ServerFault。

Use fatresize (manpage) and then proceed with lvresize.

To avoid truncating the FS, you should first shrink the VFAT volume a few hundreds (to be safe) megabytes more than wanted, then resize the LVM container and finally grow the volume to fill the LVM partition.

Besides, this question does not belong to StackOverflow but to ServerFault.

不如归去 2024-10-16 04:13:47

没有答案+截止日期=我自己写。

为了将来参考,只有几行代码,使用 libparted。为了便于阅读,我省略了错误检查等。调用者负责确保分区中有足够的空间来容纳新的文件系统大小。

#include <parted/parted.h>

int
resize_filesystem(const char *device, PedSector newsize)
{
        PedDevice *dev = NULL;
        PedGeometry *geom = NULL;
        PedGeometry *new_geom = NULL;
        PedFileSystem *fs = NULL;
        int rc = 0;

        dev = ped_device_get(device);
        ped_device_open(dev);

        geom = ped_geometry_new(dev, 0LL, dev->length);

        fs = ped_file_system_open(geom);

        new_geom = ped_geometry_new(dev, 0LL, newsize / dev->sector_size);

        ped_file_system_resize(fs, new_geom, NULL);

        ped_file_system_close(fs);
        ped_geometry_destroy(geom);
        ped_geometry_destroy(new_geom);
        ped_device_close(dev);

        return rc;
}

No answers + deadline to meet = write it myself.

For future reference, it was only a few lines of code, using libparted. For readability, I've omitted error checking, etc. Caller is responsible for ensuring there's enough space in the partition for the new filesystem size.

#include <parted/parted.h>

int
resize_filesystem(const char *device, PedSector newsize)
{
        PedDevice *dev = NULL;
        PedGeometry *geom = NULL;
        PedGeometry *new_geom = NULL;
        PedFileSystem *fs = NULL;
        int rc = 0;

        dev = ped_device_get(device);
        ped_device_open(dev);

        geom = ped_geometry_new(dev, 0LL, dev->length);

        fs = ped_file_system_open(geom);

        new_geom = ped_geometry_new(dev, 0LL, newsize / dev->sector_size);

        ped_file_system_resize(fs, new_geom, NULL);

        ped_file_system_close(fs);
        ped_geometry_destroy(geom);
        ped_geometry_destroy(new_geom);
        ped_device_close(dev);

        return rc;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文