Изменение размера раздела fat32 в командной строке без потери данных
Я пытаюсь изменить размер толстого 32 раздела в моей машине Linux. Ниже приведены технические характеристики системы.
- Это не ПК, поэтому инструменты на основе пользовательского интерфейса не применимы.
- Этот раздел памяти, размер которого я пытаюсь изменить, уже содержит данные в виде файлов. Я не могу их потерять.
- Я пытаюсь сжать раздел на одно использованное пространство и перенести оставшееся пространство на другой раздел.
- Желательно без перезагрузки системы, размонтирование раздела будет в порядке.
Изменить: Резервное копирование данных из этого раздела не то, что я ищу. Я пытаюсь увидеть, есть ли способ, который я могу попробовать без потери данных. Это больше похоже на анализ, чем на задачу.
То, что я пробовал до сих пор: пробовал с помощью инструмента parted, поскольку gparted нуждается в пользовательском интерфейсе. Хотя я могу уменьшить этот раздел, это приводит к ненужным проблемам из-за фрагментации файла. Например, после сжатия, когда я запускаю проверку файловой системы, я получаю ошибки, такие как цепочка, не найденная для нескольких файлов.
Я не могу использовать такие инструменты, как resizee2fs, так как он поддерживает только файловые системы ext (поправьте меня, если я ошибаюсь).
Я пытался использовать инструмент fatresize, хотя я смог успешно установить его в своем Debian, я не могу получить установочный файл для arm, какая бы ссылка я ни получала, она выдает ошибку в самой инструкции строки 1.
Может ли кто-нибудь помочь мне с любой информацией, которую они могут?
3 ответа
изменение размера части fat32
ПРИМЕЧАНИЕ: прежде всего, сделайте резервную копию ваших данных, на всякий случай.
тест изменения размера sda1 с 28G до 10GB.
0. исходный размер
ubuntu$ sudo mount /dev/sda1 /media/chen/test
ubuntu$ lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 28.9G 0 disk
└─sda1 8:1 1 28.9G 0 part /media/chen/test
1. изменить fs: fatresize
ubuntu$ sudo fatresize /dev/sda1 -s 10G -i -p -v
fatresize 1.0.2 (06/16/18)
.Error: Partition /dev/sda1 is being used. You must unmount it before you modify it with Parted.
ubuntu$ sudo umount /dev/sda1
ubuntu$ sudo fatresize /dev/sda1 -s 10240M -i -p -v
fatresize 1.0.2 (06/16/18)
.FAT: fat32
Size: 30985420800
Min size: 2483422208
Max size: 30989615104
ПРИМЕЧАНИЕ
// кажется, что gparted не меняет размер файловой системы, без этого шага файловая система будет сломана, говорит: файловая система больше объема:
ubuntu$ sudo dosfsck /dev/sda1
fsck.fat 4.1 (2017-01-24)
Seek to 30985420288:Invalid argument
ubuntu$ sudo fatresize /dev/sda1 -s 9G -i -p -v
fatresize 1.0.2 (06/16/18)
.Error: The file system is bigger than its volume!
2. изменить раздел: gparted ИЛИ partx
изменить размер части sda1 в графическом интерфейсе gparted // partx cli также может это сделать.
ubuntu$ lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 28.9G 0 disk
└─sda1 8:1 1 10G 0 part
ubuntu$ sudo blkid /dev/sda*
/dev/sda: PTUUID="d45b4904" PTTYPE="dos"
/dev/sda1: UUID="0403-0201" TYPE="vfat" PARTUUID="d45b4904-01"
3. проверить результат
ubuntu$ sudo mount /dev/sda1 /media/chen/test
ubuntu$ df -h /media/chen/test
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 10G 2.4G 7.7G 24% /media/chen/test
ubuntu$ sudo dosfsck /dev/sda1
...
обновление1:
Кажется, gparted изменит размер толстой файловой системы на шаге 1.
// но если fs смонтирована, это может привести к сбою, но не к приостановке
вот нормальный журнал и результат:
Ну, во-первых, если у вас "уже есть данные в виде файлов. Я не могу их потерять", ваш самый первый шаг - создать резервную копию, прежде чем делать что-либо еще.
Изменение размера и перемещение разделов не часто приводит к потере данных, и если ничего не помогает, вы почти всегда можете восстановить файлы с помощью photorec - http://www.cgsecurity.org/wiki/PhotoRec - это очень сложно.
Во-вторых, вы не можете изменить размер или переместить разделы, которые используются. Это основная причина, по которой люди советуют вам выполнять эти операции с живого USB.
Таким образом, несмотря ни на что, вы не можете переместить или изменить размер корневого раздела без загрузки с живого USB (исключение будет добавление в LVM).
Пока эти разделы не используются, т.е. не смонтированы, вы можете перемещать и изменять их размер:
В противном случае ваш вопрос может быть закрыт из-за:
Вы используете Debian
Недостаток информации. Вы не опубликовали свою схему разбиения, расскажите, что вы хотите переместить, какие разделы смонтированы и какие команды и сообщения об ошибках вы получаете.
Вам лучше скопировать данные в виде файлов в безопасное место (если хотите, назовите его резервным копированием), но в этом случае это также временное расположение, потому что я думаю, что вы должны согласиться с тем, что вы не можете сжать файловую систему FAT с помощью Linux. инструменты. Вы могли бы сделать это с помощью инструментов Windows (FAT32 - файловая система Microsoft.)
Поэтому после того, как вы скопировали данные в виде файлов в безопасное место, вы можете
загрузиться с другого диска и размонтировать все разделы на этом диске, которые вы хотите изменить
отредактируйте раздел (проще всего удалить раздел FAT32 и создать новый раздел с нужным вам размером.
создать файловую систему FAT32 в новом разделе
сделать другие модификации таблицы разделов...
скопируйте файлы из безопасного места в новый раздел FAT32.