如果需要从第二块硬盘拷贝文件,该硬盘格式化为UFS 2文件系统,如何mount 由FreeBSD创建的UFS 2文件系统到Ubuntu系统上呢? UFS文件系统广泛的使用在不同的操作系统(例如:HP-UX,Sun Solaris)中,包括FreeBSD。下面的语法用于挂载mount UFS 2文件系统:mount -t ufs -o ufstype=ufs2,ro /dev/sdXY/path/to/mnt/point每个分区包含一个文件系统存在FreeBSD中,称为一个Slice。Slice是FreeBSD中的一个术语,通常称为分区。这是因为FreeBSD具有UNIX的背景,Slice是编号的,从1开始到4。因此你需要使用等同的Linux分区名称。
验证UFS分区支持
为了检查你的Linux内核是否支持UFS文件系统,你可以执行下面的命令:$ cat /proc/filesystems输出示例:nodev sysfsnodev rootfsnodev bdevnodev procnodev cpusetnodev binfmt_miscnodev debugfsnodev securityfsnodev sockfsnodev usbfsnodev pipefsnodev anon_inodefsnodev futexfsnodev tmpfsnodev inotifyfsnodev eventpollfsnodev devpts ext2nodev ramfsnodev hugetlbfs iso9660nodev mqueue ext3nodev rpc_pipefsnodev autofs 第一行的关键字nodev含义是文件系统不需要挂载一个块设备,这是为什么也称为虚拟文件系统的原因。支持也被编译到内核中或者作为一个单独的模块。 检查是否安装ufs驱动的方法:方法1:# cat /proc/filesystems | grep ufs方法2:ls -l /lib/modules/`uname -r`/kernel/fs/ufs/ufs.ko 第1中方法无输出且第2种方法文件不存在表示UFS驱动没有编译到内核或作为模块安装。
安装UFS驱动
root@ubuntu:~#
modprobe ufsroot@ubuntu:~#
cat /proc/filesystems| grep ufs ufs#
modinfo ufsfilename: /lib/modules/3.11.0-14-generic/kernel/fs/ufs/ufs.kolicense: GPLalias: fs-ufssrcversion: 961388D4E5A5AA94C372D19depends: intree: Yvermagic: 3.11.0-14-generic SMP mod_unloadmodversionsroot@ubuntu:~#
uname -r3.11.0-14-genericroot@ubuntu:~# ll/lib/modules/3.11.0-14-generic/kernel/fs/ufs/ufs.ko#
lsmod | grep ufs# grep BSD_DISKLABEL /boot/config-`uname -r`CONFIG_BSD_DISKLABEL=y#
grep UFS /boot/config-`uname-r`CONFIG_UFS_FS=m#
dmesg |grep bsdmount -t ufs -oufstype=sun|sunx86|44bsd|ufs2|5xbsd|old|hp|nextstep|nextstep-cd|openstep ...
挂载UFS硬盘
依赖于你的FreeBSD的分区类型是UFS1还是UFS2,你需要引用不同的挂载选项。UFS1使用ufstype=44bsd,UFS2使用ufstype=ufs2. 为了发现FFS分区所对应的设备,运行:# fdisk -l# sfdisk -l Disk /dev/hda: 155061 cylinders, 16 heads,63 sectors/trackWarning: extended partition does not startat a cylinder boundary.DOS and Linux will interpret the contentsdifferently.Units = cylinders of 516096 bytes, blocksof 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System/dev/hda1 * 0+ 34536- 34537- 17406396 7 HPFS/NTFS end: (c,h,s) expected(1023,15,63) found (1023,254,63)/dev/hda2 34536+ 134767- 100231- 50516392+ f W95 Ext"d (LBA) start: (c,h,s) expected(1023,15,63) found (1023,255,63) end: (c,h,s) expected(1023,15,63) found (1023,254,63)
/dev/hda3 134767+144935- 10169- 5124735 a5 FreeBSD start:(c,h,s) expected (1023,15,63) found (1023,255,63) end: (c,h,s) expected (1023,15,63)found (1023,254,63)/dev/hda4 144935+ 155060 10126- 5103189 a9 NetBSD start: (c,h,s) expected (1023,15,63) found (1023,255,63) end:(c,h,s) expected (1023,15,63) found (1023,80,63)/dev/hda5 34536+ 102366- 67830- 34186288+ 83 Linux start: (c,h,s) expected(1023,15,63) found (0,1,1) end: (c,h,s) expected(1023,15,63) found (1023,254,63)/dev/hda6 102366+ 104294 1929- 971901 82 Linux swap / Solaris start: (c,h,s) expected(1023,15,63) found (0,1,1) end: (c,h,s) expected(1023,15,63) found (120,254,63)/dev/hda7 104295+ 134767- 30473- 15358108+ 83 Linux start: (c,h,s) expected(1023,15,63) found (0,1,1) end: (c,h,s) expected(1023,15,63) found (1023,254,63)
/dev/hda8 134767+143910- 9143- 4608000/dev/hda9 143910+144935- 1026- 516735/dev/hda10 144935+ 154078- 9143 4608072/dev/hda11 154078+ 155060 983- 495117/dev/hda12 0+ 34536- 34537- 17406396/dev/hda13 34536+ 102366- 67830- 34186288+/dev/hda14 102366+ 104294 1929- 971901/dev/hda15 104295+ 144935- 40641- 20482843+ 因此,对于FreeBSD(FFSv2),/dev/hda3等价于/dev/ad0s3 NetBSD(FFSv1),/dev/hda4等价于/dev/wd0c。 但是这些设备是整个BSD的Slice(BOIS分区),不是BSD分区。 通过仔细检查sfdisk的输出结果,我们发现/dev/hda3包含/dev/hda8和/dev/hda9,/dev/hda4包含/dev/hda10和/dev/hda11。 我们可以推出,对于FreeBSD/dev/hda8等价于/dev/ad0s3a(FreeBSD的根分区),/dev/hda9等价于/dev/ad0s3b(FreeBSD的Swap分区)。 对于NetBSD,/dev/had10等价于/dev/wd0a(NetBSD根分区),/dev/hda11等价于/dev/wd0b(NetBSD的Swap分区)。 因此FreeBSD的根分区位于/dev/hda8,首先创建一个目录用于mountFFS分区,然后挂载它。# mkdir/mnt/freebsd# mount -t ufs-o ro,ufstype=ufs2 /dev/hda8 /mnt/freebsd/NetBSD的根分区位于/dev/hda10上,首先创建一个挂载FFS分区的目录,然后挂载它。# mkdir/mnt/netbsd# mount -t ufs-o ro,ufstype=44bsd /dev/hda10 /mnt/netbsd/让我们浏览挂载的目录:# ls /mnt/*bsd/mnt/freebsd:bin cdrom COPYRIGHT dist etc lib media proc root sys usrboot compat dev entropy home libexec mnt rescue sbin tmp var/mnt/netbsd:altroot etc gnome-screensave.core mnt root varbin GENERIC kern netbsd sbinboot GENERIC-DIAGNOSTIC lib onetbsd standCUSTOM GENERIC-LAPTOP libdata proc tmpdev GENERIC-NOACPI libexec rescue usr
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-11/109569p2.htm
Linux系统入门学习:改变libvirt VM镜像的默认位置SUSE 11中安装GCC开发环境相关资讯 Linux下mount FreeBSD分区 本文评论 查看全部评论 (0)