Archive for August 5th, 2008

Как да монтираме файловата система на FreeBSD в Linux

Tuesday, August 5th, 2008

Това го има на няколко места в нета, но на всичките по нещо куцаше, така че реших да напиша как стана при мен.
1) В ядрото трябва да имате:
CONFIG_UFS_FS (Filesystems -> Miscellanious -> UFS filesystem support) - можете да го сложите като модул, но ако искате по-късно автоматично монтиране от fstab, ще трябва да го вкарате в ядрото. Ако го сложите като модул, във fstab ще опишете файловата система с noauto (иначе mount протестира че няма такава файлова система ufs - поне при мен не си зарежда автоматично модула) и в rc.local си добавете "modprobe ufs"
CONFIG_BSD_DISKLABEL (Filesystems -> Partition types -> Advanced partition selection -> PC BIOS -> BSD disklabel) - това няма опция за компилиране на модул - само директно в ядрото

2) Ако ядрото ви е наред, време е да откриете точно кое устройство ви носи UFS файловата система.

dmesg | grep bsd

Ще се види нещо като:

sdb1: <bsd: sdb6 sdb7 >

Тук Linux вижда 1 устройство - sdb1, но FreBSD си има по-особена организация на файловите системи. Вероятно сте запознати с това, така че ще ви го спестя. Да видим как са разпознати от boot процеса на Linux - sdb6 и sdb7.
Едното ми е swap дяла, а другото root на файловата система. Ако се съмнявам кое кое е, ще пробвам по отделно:

3) Монтиране с mount:
- изберете типа на UFS - при съвременните BSD-та (или поне на FreeBSD7) е ufs2

# mount -r -t ufs -o ufstype=ufs2 /dev/sdb6 /mnt/bsd/
# ls /mnt/bsd
COPYRIGHT boot compat dist etc lib media proc root sys usr
bin cdrom dev entropy home libexec mnt rescue sbin tmp var

Уцелих от първия път :)

4) Описване в /etc/fstab

/dev/sdb6 /mnt/bsd ufs ro,ufstype=ufs2 0 0

По желание можете да сложите
noauto - ако сте компилирали ufs support на модул вместо директно в ядрото
users - за монтиране от обикновени потребители без root привилегии