Назад | Перейти на главную страницу

Как * пометить * раздел как ext4?

У меня есть раздел ext3, поэтому, когда я это делаю:

mount /dev/blah /mnt/blah

он монтируется автоматически как ext3. Я могу установить его как ext4, запустив

mount -t ext4 /dev/blah /mnt/blah

и это работает. Я предполагаю, что раздел каким-то образом помечен как ext3. Можно ли изменить это на ext4, чтобы:

mount /dev/blah /mnt/blah

смонтирует его как ext4. Это для эксперимента. Я хочу сделать это без включения новых функций ext4, чтобы я мог вернуться к ext3.

Если во время создания файловая система не использовала или явно отключила расширения ext4 (например, uninit_bg и flex_bg), файловая система будет на самом деле ext3 (если в ней есть журнал) или ext2 (если в ней нет функций ext3 или ext4).

Вы можете включить функции ext4 с помощью tune2fs -O.

Справочная страница ext4:

Если опция -O используется для явного добавления или удаления параметров файловой системы, которые должны быть установлены во вновь созданной файловой системе, полученная файловая система может не поддерживаться запрошенным типом fs. (например, «mke2fs -t ext3 -O extents / dev / sdXX» создаст файловую систему, которая не поддерживается реализацией ext3 в ядре Linux; и «mke2fs -t ext3 -O ^ has_journal / dev / hdXX» создаст файловую систему без журнала и, следовательно, не будет поддерживаться кодом файловой системы ext3 в ядре Linux.)

Страница руководства tune2fs:

-O [^] функция [, ...] - O [^] функция [, ...]

Включение определенных функций файловой системы может препятствовать монтированию файловой системы ядрами, которые не поддерживают эти функции. В частности, функции uninit_bg и flex_bg поддерживаются только файловой системой ext4.

man mount:

Если нет -t задана опция, или, если указан автоматический тип, mount попытается угадать желаемый тип. Mount использует blkid библиотека для определения типа файловой системы; если это не покажет ничего знакомого, mount попытается прочитать файл /etc/filesystems, или, если таковой не существует, /proc/filesystems. Будут опробованы все перечисленные здесь типы файловых систем, за исключением тех, которые помечены как «nodev» (например, devpts, proc и nfs). Если /etc/filesystems ends в строке только с одним *, mount будет читать /proc/filesystems потом.

# mount -V
mount from util-linux-ng 2.17.2 (with libblkid and selinux support)

Кроме blk_id:

# blkid -o value -s TYPE /dev/sdb1
ext4

есть еще несколько способов определить файловую систему отключенного раздела:

# file -s /dev/sdb1 
/dev/sdb1: Linux rev 1.0 ext4 filesystem data (extents) (large files) (huge files)

# fsck -N /dev/sdb1
fsck from util-linux-ng 2.17.2
[/sbin/fsck.ext4 (1) -- /dev/sdb1] fsck.ext4 /dev/sdb1 

# parted /dev/sdb1 print
Model: Unknown (unknown)
Disk /dev/sdb1: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0.00B  107GB  107GB  ext4

mount /dev/blah /mnt/blah работает только с записью fstab, не так ли? Так что измените запись fstab на ext4 и все.

Вы, вероятно, имеете в виду поведение

mount -t auto /dev/blah /mnt/blah

Не знаю, где определяется порядок проверки ext3 и ext4. Полагаю, в самой ФС нет пометки: "Предпочитаю монтировать как ext4". Что-то похожее на метку - это несовместимые с предыдущей версией функции ext4, которые установлены в суперблоке. Это предотвратит монтирование FS как ext3, но это не то, что вам нужно.