Однако при ресайзе с уменьшением размера раздела, parted не проверяет размер данных на разделе, и это может привести к повреждению с потерей данных на разделе.
Дык давно известно, что сначала надо уменьшить размер файловой системы (resize2fs), потом уменьшить размер раздела.
Читайте внимательней выше.
Речь идёт про fat
с выводом окна gnome-disk-utility сообщения об ошибке:
Ошибка восстановления файловой системы
Cannot repair vfat filesystem on dev/sdc1: executable fsck.vfat
not found (udisks-error-quark, 0)
Теоретически, parted имеет возможность ресайзить разделы
# parted /dev/sdc resizepart 1 282MB
Предупреждение: Уменьшение раздела может привести к потере данных, вы действительно хотите продолжить?
Да/Yes/Нет/No? Yes
Информация: Не забудьте обновить /etc/fstab.
# blkid | grep sdc1
/dev/sdc1: LABEL_FATBOOT="FAT3CR" LABEL="FAT3CR" UUID="106E-5904" TYPE="vfat" PARTUUID="72e27a36-01"
а не ext*fs
# man resize2fs | sed -n '4p'
resize2fs - ext2/ext3/ext4 file system resizer
И о временной замене resize fat в gnome-disk-utility:
Размер fat раздела
# parted -l | tail -n 3 | head -n 1
1 83,9MB 8053MB 7969MB primary fat32 lba
Уменьшить размер fat раздела до размера меньшего чем файл, который будет в него скопирован
# parted /dev/sdc resizepart 1 134MB
Предупреждение: Уменьшение раздела может привести к потере данных, вы действительно хотите продолжить?
Да/Yes/Нет/No? Yes
Информация: Не забудьте обновить /etc/fstab.
Что получилось после ресайза
# fdisk -l /dev/sdc
Диск /dev/sdc: 7,5 GiB, 8053063680 байт, 15728640 секторов
Disk model: Card Reader
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x72e27a36
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sdc1 163840 261718 97879 47,8M c W95 FAT32 (LBA)
/dev/sdc2 3156 163155 160000 78,1M ef EFI (FAT-12/16/32)
Элементы таблицы разделов упорядочены не так, как на диске.
# parted -l | tail -n 3 | head -n 1
1 83,9MB 134MB 50,1MB primary fat32 lba
Забить нулями пространство свободное от разделов
# dd if=/dev/zero of=/dev/sdc bs=512 seek=261719
dd: ошибка записи '/dev/sdc': На устройстве не осталось свободного места
15466922+0 записей получено
15466921+0 записей отправлено
7919063552 байт (7,9 GB, 7,4 GiB) скопирован, 1673,83 s, 4,7 MB/s
parted отображает размер в мегабайтах, fdisk в мебибайтах
# echo '50.1*1000^2/1024^2' | bc -l
47.77908325195312500000
Увелить размер fat раздела до максимума
# parted /dev/sdc resizepart 1 8053MB
Информация: Не забудьте обновить /etc/fstab.
Результат, - размер файловой системы
# parted -l | tail -n 3 | head -n 1
1 83,9MB 8053MB 7969MB primary fat32 lba
Скопировать файл в файловую fat, после её ресайза до максимума
# cp /source/Unigine_Heaven-4.0.run /destination/FAT3CR/
Сравнить побайтно файлы источника и назначения, - ошибок нет:
# cmp -b --verbose /source/Unigine_Heaven-4.0.run /destination/FAT3CR/Unigine_Heaven-4.0.run
#
# du -m /destination/FAT3CR/Unigine_Heaven-4.0.run
274 /destination/FAT3CR/Unigine_Heaven-4.0.run