3

Когда я создавал свои GPT-разделы с помощью parted , я обычно использовал тип файловой системы ext2 :

$ parted /dev/sdc print | grep ^12 
12      961GB   1118GB  157GB   ext2               msftdata

Теперь я хочу изменить его на ext4 , поэтому я использую mkfs.ext4 /dev/sdc12 для переформатирования раздела, но когда я делаю распакованный файл parted /dev/sdc print как указано выше, он все еще показывает ext2 в качестве типа файловой системы.

Я сделал некоторое чтение и кажется , что единственный способ для parted выберите тип файловой системы является команда mkpartfs Ref: http://www.thegeekstuff.com/2011/09/parted-command-examples/. Это так? Мне действительно не нравится использовать команду mkpartfs для изменения типа моей файловой системы, потому что я не хочу заново создавать раздел. Это может испортить мою нумерацию разделов (например, sdc12 будет называться sdc19). Есть ли лучшие способы?

РЕДАКТИРОВАТЬ:

Снова столкнулся с той же проблемой и снова нашел ответ на свой собственный вопрос. Итак, регистрируя, почему я подумал, что необходимо изменить тип файловой системы раздела:

% mount $bootdev
mount: wrong fs type, bad option, bad superblock on /dev/sdb2,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

% fsck  $bootdev
fsck from util-linux 2.20.1
e2fsck 1.42.8 (20-Jun-2013)
GptLive: clean, 21/1024000 files, 74309/4096000 blocks

% mount $bootdev
mount: wrong fs type, bad option, bad superblock on /dev/sdb2,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Т.е. я недавно создал запись /dev/sdb2 с типом auto в /etc/fstab . Однако mount просто не может его смонтировать. Тем не мение:

% mount $bootdev /mnt/GptLive

% mount | grep $bootdev
/dev/sdb2 on /mnt/GptLive type ext2 (rw)

То есть, когда mount $dev не работает, mount $dev /mnt/place работает просто отлично.

Я не знаю почему и не могу объяснить исправление, но просто фиксирую тот факт, что именно поэтому я искал решение и как я его "исправил" .

Спасибо

1 ответ1

5

GParted и parted программы дают только очень ограниченный контроль над информацией кода типа таблицы разделов. В лучшем случае некоторые коды типов переводятся в «флаги». Вот что такое флаг msftdata - он обозначает раздел Microsoft Basic Data (GUID EBD0A0A2-B9E5-4433-87C0-68B6B72699C7; см. Список кодов типов GPT в Википедии). Вы можете изменить некоторые коды типов, отрегулировав флаги, но Linux игнорирует эти коды, за исключением определенных ограниченных ситуаций, поэтому в системе только с Linux вам не нужно гадить с ними. Однако в системе с двойной загрузкой не следует устанавливать раздел Linux с кодом типа Microsoft Basic Data; см. мою страницу по этой теме, чтобы узнать, почему это плохая идея.

Идентификация файловой системы как ext2 в parted выполняется программой, исследующей данные в разделе. Если вы создали новую файловую систему ext4 в разделе, parted должен правильно ее идентифицировать; но может быть ошибка в parted «s идентификации. Если так, я бы не волновался об этом. Возможно, вы захотите проверить, действительно ли раздел содержит файловую систему ext4, используя blkid (как в sudo blkid /dev/sdc12) или изучив технические детали с помощью dumpe2fs - но последний требует достаточного количества знаний для интерпретации. На самом деле ext4fs - это в основном ext2fs с дополнительными функциями, поэтому разделить их на две части довольно сложно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .