Linux下如何掛載BSD分區(嚴格說是partition)的問題本應屬於Linux應用范疇,不過很多BSD愛好者同時也是Linux fans,所以我覺得貼在本版比貼在linux版更實際。
下面就我的系統(Gentoo Linux-nitro-source-2.6.13.1 + FreeBSD6.0 UFS2)為例說說掛載UFS分區的方法。
測試環境:
BSD系統:FreeBSD6.0(UFS2)
Linux系統:Gentoo , nitro-sources-2.6.13.1。
其實對於其他常見的BSD系統和linux系統,本文的內容也是基本適用的。
掛載過程中常見的錯誤有下面兩種:
錯誤一:無法辨認UFS分區。
mount: wrong fs type, bad option, bad superblock on /dev/hdb1, or too many mounted file systems
錯誤二:只能掛載/ 分區(即只能從/dev/ 下面看到一個slice中的一個partition)。
下面是掛載的必要步驟
一、配置內核
對於linux的新版本內核,都能夠支持UFS的讀寫(寫:危險!)及UFS2的讀操作。所需的配置:
// UFS文件系統支持,一般來說不建議選“寫支持”
Filesystems -> Miscellaneous filesystems ->
<*> UFS file system support (read only)
//BSD disklabels 分區支持
Filesystems -> Partition types ->
Advanced partition selection
PC BIOS (MSDOS partition tables) support
BSD disklabel (FreeBSD partition tables) support
二、編譯、安裝內核:
# make
# mount /boot
# cp arch/i386/boot/bzImage /boot/kernel
# reboot
三、掛載
先查看dmesg信息或者log信息,確定BSD分區號。
~ # cat /var/log/messages | grep bsd
Nov 12 09:26:34 [kernel] hda3: 尖括號<>內的就是在BSD Slice內的分區,也就是我們的掛載對象。
掛載方式,對於UFS1:
# mount -r -t ufs -o ufstype=44bsd /dev/hda7 /mnt/my-mount-point 對於UFS2:
# mount -r -t ufs -o ufstype=ufs2 /dev/hda8 /mnt/my-mount-point2