0

非常に単純です。Fat32ファイルシステムを含むLVMパーティション(例:/ dev / mapper / foo-fat)があります。このLVMパーティションのサイズを縮小する前に(lvmreduceで実行します)、そこに含まれるFat32ファイルシステムのサイズを縮小したいと思います。

別れはそれを行うことができるはずですが、それを機能させるための魔法の呼び出しを見つけることができません。

4

3 に答える 3

3

fatresize (マンページ) を使用してから、 に進みますlvresize

FS の切り捨てを回避するには、最初に VFAT ボリュームを必要以上に数百メガバイト (安全のために) 縮小し、次に LVM コンテナーのサイズを変更し、最後にボリュームを拡張して LVM パーティションを埋める必要があります。

また、この質問は StackOverflow ではなく ServerFault に属します。

于 2013-05-04T21:57:18.397 に答える
3

答えなし + 締め切り = 自分で書く。

今後の参考のために、これは 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;
}
于 2010-12-24T23:22:14.190 に答える
0

これはあなたが望むもののようですhttp://www.gnu.org/software/parted/manual/html_chapter/parted_2.html#SEC25

于 2010-12-24T23:24:48.453 に答える