МАБУ

FreeBSD Mounting drive with ext4 file system
Монтирование диска с файловой системой ext4 во FreeBSD

Когда я переходил с GNU/Linux на FreeBSD у меня было несколько дисков на один из них я поставил FreeBSD, а GNU/Linux со всеми данными не стал убивать. После того как я установил и настроил FreeBSD мне нужно было перенести все данные на установленную систему. Я выключил свой компьютер подключил диск с GNU/Linux загрузился с FreeBSD и в терминале выполнил команду:

# mount /dev/da0s1 /mnt

на что я увидел вот такое сообщение об ошибке

mount: /dev/da0s1: Invalid argument

Я решил попробовать так:

# mount -t ext4 /dev/da0s1 /mnt

и тут ошибка

mount: /dev/da0s1: Operation not supported by device

Но данные нужно было как-то извлечь. Потом я посмотрел на свои диски этими командами:

# dmesg | grep da0
и
# gpart show da0

Диски определились нормально

Следующий мой шаг это разрешение обычному пользователю монтирование устройств.

Я отредактировал файл /etc/devfs.rules чтобы пользователи группы operator имели права на чтение и запись, вот так:

# vi /etc/devfs.rules
[localrules=5] add path 'da*' mode 0660 group operator

Теперь отредактируйте /etc/rc.conf чтобы разрешить devfs.rules набор правил:

# vi /etc/rc.conf

devfs_system_ruleset="localrules"

Разрешение обычному пользователю монтированию файловой системы.

Отредактируйте файл /etc/sysctl.conf так:

# vi /etc/sysctl.conf

vfs.usermount=1

Выполните:

# sysctl vfs.usermount=1 vfs.usermount: 0 -> 1

Создайте каталог например linux как это сделал я или любой другой:

# mkdir /mnt/linux

И указываем владельца и группу

# chown user:user /mnt/linux

Где user ваш пользователь и его группа

После я попытался монтировать диск и снова ошибка

$ mount -t ext4 /dev/da0s1 /mnt/linux

mount: /dev/da0s1: Invalid argument

Но теперь ошибка не операция запрещена,а недоступный аргумент это означает что FreeBSD не поддерживает файловую систему ext4.

Нам нужно установить порт fusefs-ext4fuse

# cd /usr/ports/sysutils/fusefs-ext4fuse

# make install clean

Когда fusefs-ext4fuse установился я попробовал снова монтировать диск

$ ext4fuse /dev/da0s1 /mnt/linux

fuse: failed to open fuse device: No such file or directory

и снова беда
Погуглив я нашел то что в ядре есть модуль fuse, подгружаем модуль fuse.ko

# kldload fuse.ko

Редактируем /boot/loader.conf чтобы загружать модуль при каждой загрузки

# vi /boot/loader.conf

fuse_load="YES"

После попробовал смонтировать диск:

$ ext4fuse /dev/da0s1 /mnt/linux

все прошло без ошибок и я решил посмотреть содержание каталога так

$ ls /mnt/linux

и увидел что все работает Ураааа!

Загрузка беседы