Изменить тип файловой системы раздела GPT с помощью parted

3

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

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

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

Я немного почитал, и кажется, что единственный способ partedприкоснуться к типу файловой системы - это mkpartfsкоманда, ссылка: 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работал просто отлично.

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

Спасибо

XPT
источник

Ответы:

5

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

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

Род Смит
источник
Это более чем всеобъемлющее, спасибо миллион. Да, в моей системе Ubuntu 13.10 Saucy partedне смог правильно идентифицировать его, но, как было указано, blkidможет.
xpt