Как я могу изменить размер файловой системы FAT32 в разделе LVM? [закрыто

StackOverflow https://stackoverflow.com/questions/4523488

  •  12-10-2019
  •  | 
  •  

Вопрос

Достаточно просто: у меня есть раздел LVM (например, dev/dev/mapper/foo-fat), который содержит файловую систему FAT32. До уменьшения размера этого разделения LVM (что я сделаю с Lvmreduce), я хочу уменьшить размер файловой системы FAT32, в которой она содержит.

Похоже, что расстался, должен быть в состоянии сделать это, но я не могу найти магический вызов, чтобы заставить его работать.

Это было полезно?

Решение

Использовать fatresize (Ман) и затем перейти к lvresize.

Чтобы избежать укорания FS, вы должны сначала сократить объем VFAT на несколько сотен (чтобы быть безопасными) мегабайтами больше, чем разыскиваемые, а затем измените размер контейнера LVM и, наконец, увеличить объем, чтобы заполнить раздел LVM.

Кроме того, этот вопрос принадлежит не Stackoverflow, а к Serverfault.

Другие советы

Нет ответов + крайний срок, чтобы встретиться = написать сам.

Для будущей ссылки это было всего несколько строк кода, используя 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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top