Поставил я себе ALT Linux, решил перекинуть некоторые нужные вещи с другого винта с freebsd, но тут, как обычно бывает, оказались грабли. Первая проблема — mount при монтировании ufs не может автоматически определить тип файловой системы, т.к. существуют различные её реализации и не все являются документированными. Но это легко решается прочтением манов:
1 | mount -r -t ufs -o ufstype=ufs2 /dev/sdb9 /mnt/freebsd_user |
Где /dev/sdb9 — раздел, который монтровался во freebsd как /usr.
Надо сказать, что опций монтирования ufs всего две — это тип ufs и реакция на ошибку. Да и реакция на ошибку может только либо панику вызывать, либо выводить сообщение о самой ошибке на консоль, хотя самих параметров больше описано.
Если кто-то не использовал кириллицу, в разделах freebsd, то на этом можно закончить. Если нет — то нам теперь понадобится convmvfs. В ALT Linux можно установить так:
1 | # apt-get install convmvfs |
После установки создаём новую папку /mnt/freebsd_user_fixed и выполняем следующую команду:
1 | # convmvfs /mnt/freebsd_user_fixed -o allow_other -o srcdir=/mnt/freebsd_user -o icharset=koi8-r -o ocharset=utf-8 |
Опция -o allow_other открывает доступ к новой файловой системе обычным пользователям. В принципе, с помощью convmvfs в linux можно монтировать с перекодировкой любые другие папки, не только разделы ufs.
На этом всё, спасибо сообществу ALT Linux за помощь.