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 мали права на читання та запис, ось так:

 

# ee /etc/devfs.rules

[localrules=5] add path 'da*' mode 0660 group operator

 
Тепер відредагуйте /etc/rc.conf, щоб дозволити devfs.rules набір правил:

 

# ee /etc/rc.conf

 
devfs_system_ruleset="localrules"

 
Дозвіл звичайному користувачеві монтування файлової системи.

 
Відредагуйте файл /etc/sysctl.conf так:

 

# ee /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: Немає такого файла або directory

 
і знову біда
Погуглив я знайшов те, що в ядрі є модуль fuse, підвантажуємо модуль fuse.ko

 

# kldload fuse.ko

 
Редагуємо /boot/loader.conf, щоб завантажувати модуль при кожному завантаженні

 

# ee /boot/loader.conf

 
fuse_load="YES"

 
Після спробував змонтувати диск:

 

$ ext4fuse /dev/da0s1 /mnt/linux

 
все пройшло без помилок і я вирішив подивитися зміст каталогу так

 

$ ls /mnt/linux

 
і побачив, що все працює Ураааа!