假设须要从第二块硬盘复制文件。该硬盘格式化为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  sysfs

nodev  rootfs

nodev  bdev

nodev  proc

nodev  cpuset

nodev  binfmt_misc

nodev  debugfs

nodev  securityfs

nodev  sockfs

nodev  usbfs

nodev  pipefs

nodev  anon_inodefs

nodev  futexfs

nodev  tmpfs

nodev  inotifyfs

nodev  eventpollfs

nodev  devpts

ext2

nodev  ramfs

nodev  hugetlbfs

iso9660

nodev  mqueue

ext3

nodev  rpc_pipefs

nodev  autofs

第一行的keywordnodev含义是文件系统不须要挂载一个块设备,这是为什么也称为虚拟文件系统的原因。支持也被编译到内核中或者作为一个单独的模块。

检查是否安装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 ufs

root@ubuntu:~# cat /proc/filesystems| grep ufs

ufs

# modinfo ufs

filename:      /lib/modules/3.11.0-14-generic/kernel/fs/ufs/ufs.ko

license:        GPL

alias:          fs-ufs

srcversion:     961388D4E5A5AA94C372D19

depends:

intree:         Y

vermagic:       3.11.0-14-generic SMP mod_unloadmodversions

root@ubuntu:~# uname -r

3.11.0-14-generic

root@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 bsd

mount -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/track

Warning: 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 usr

boot compat  dev        entropy home  libexec  mnt   rescue  sbin  tmp var

/mnt/netbsd:

altroot etc                gnome-screensave.core  mnt      root  var

bin     GENERIC             kern                   netbsd   sbin

boot    GENERIC-DIAGNOSTIC  lib                    onetbsd stand

CUSTOM  GENERIC-LAPTOP      libdata                proc     tmp

dev     GENERIC-NOACPI      libexec                rescue   usr

编辑/etc/fstab

为了开机自己主动挂载。须要加入以下两行到/etc/fstab文件里:

/dev/hda8       /mnt/freebsd     ufs    ufstype=ufs2,ro        0       2

/dev/hda10      /mnt/netbsd      ufs    ufstype=44bsd,ro       0       2

如今你能挂载FFS分区,输入:

# mount/mnt/freebsd

# mount/mnt/netbsd

而且使用以下命令验证:

$ mount

[...]

/dev/hda8 on/mnt/freebsd type ufs (ro,ufstype=ufs2)

/dev/hda10 on/mnt/netbsd type ufs (ro,ufstype=44bsd)

[...]

写入支持

满足几个条件下能够支持写:

-         在Linux内核中编译选项支持写入,缺省禁用的(CONFIG_UFS_FS_WRITE=y)

-         FFSV1文件系统(FFSv1)(FFSV2不支持)

请注意:普通情况下你不须要在NetBSD分区上写入。因此不要又一次编译内核和測试该特性。

附注

1.假设你忘记ro选项。你可能在dmesg中获得例如以下消息:

$ dmesg | grep ufs

ufs was compiled with read-only support,can't be mounted as read-write

2.假设你忘记设置ufstype选项,你可能在dmesg中获得以下的消息:

$ dmesg | grep ufstype

mount -t ufs -oufstype=sun|sunx86|44bsd|ufs2|5xbsd|old|hp|nextstep|nextstep-cd|openstep ...

WARNING<<< Wrong ufstype maycorrupt your filesystem, default is ufstype=old

3.卸载分区的命令:umount /mnt

# mount -t ufs-r -o ufstype=ufs2 /dev/sdb3 /mnt/sdb3

mount: wrong fstype, bad option, bad superblock on /dev/sdb3,

missing codepage or helper program, orother error

In some cases useful info is found insyslog - try

dmesg | tail  or so

#dmesg | tail

[1279.960537] ufs_read_super: bad magic number

#mount -t ufs -r -o ufstype=44bsd /dev/sdb2 /mnt/sdb3

4. 查看各个磁盘的分区信息:

root@ubuntu:~# file -Ls /dev/sdb1

/dev/sdb1: x86 boot sector; partition 4:ID=0xa5, active, starthead 0, startsector 0, 50000 sectors, code offset 0x3c,BSD disklabel   无法挂载

root@ubuntu:~# file -Ls /dev/sdb2

/dev/sdb2: x86 bootsector; partition 4: ID=0xa5, active, starthead 0,startsector 0, 50000 sectors, code offset 0x3c, BSD disklabel   无法挂载

root@ubuntu:~# file -Ls /dev/sdb3               mount -o ufstype=44bsd -r -t ufs

/dev/sdb3: Unix Fast File system [v1](little-endian), last mounted on /cf, last written at Tue Nov 18 19:16:31 2014,clean flag 1, number of blocks 2104515, number of data blocks 2069056, numberof cylinder groups 82, block size 4096, fragment size 512, minimum
percentageof free blocks 8, rotational delay 0ms, disk rotational speed 60rps, TIMEoptimization

root@ubuntu:~# file -Ls /dev/sdb4          mount-o ufstype=ufs2 -r -t ufs

/dev/sdb4: Unix Fast File system [v2](little-endian) last mounted on /var/log, last written at Tue Nov 18 11:16:432014, clean flag 1, readonly flag 0, number of blocks 4909865, number of datablocks 4753848, number of cylinder groups 31, block size 32768,
fragment size4096, average file size 16384, average number of files in dir 64, pendingblocks to free 0, pending inodes to free 0, system-wide uuid 0, minimumpercentage of free blocks 8, TIME optimization

Linux下mount FreeBSD分区的更多相关文章

  1. linux下硬盘的分区:

    提到硬盘的分区,以前就是很乱,有什么主分区/扩展分区/逻辑分区等;它们有什么区别呢?现在简单的了解一下: 由于在MBR的主引导记录中的分区表里面最多只能记录4个分区记录,这个不够用啊,为了解决这个问题 ...

  2. Linux下的GPT分区,使用parted命令

    Linux下的GPT分区,这是另外一种分区,针对MBR分区,它有很多优点: (1)几乎突破了分区个数的限制. 在GPT分区表中最多可以支持128个主分区. (2)单个分区容量几乎没有限制. 单个分区最 ...

  3. linux下挂载NTFS分区错误修复

    今天在linux下打开win的NTFS硬盘总是提示出错了,而且是全部的NTFS盘都出错,其中sda1错误显示如下: Error mounting /dev/sda1 at /media/wangbo/ ...

  4. linux下mount/unmount命令

    格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有:-a 安装在/etc/fstab文件中类出的所有文件系统.-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系 ...

  5. Linux下的磁盘分区和逻辑卷

    一.硬盘接口类型 硬盘的接口主要有IDE.SATA.SCSI .SAS和光纤通道等五种类型.其中IDE和SATA接口硬盘多用于家用产品中,也有部分应用于服务器,SATA是一种新生的硬盘接口类型,已经取 ...

  6. linux下的硬盘分区、格式化、挂载

    linux下的MBR(msdos)分区.格式化.挂载 在linux下,需要使用一块硬盘. 需要进行以下四步: 识别硬盘-----分区规划-----格式化-----挂载 步骤一:分区规划 MBR模式分区 ...

  7. Linux下swap(交换分区)的增删改

    swap介绍 Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合.交换分区的作用是,当系统物理内存吃 ...

  8. (转)Linux下增加交换分区的大小

    场景:最近在Linux环境安装ELK相关软件时候发现机器特别的卡,所以就查看了Linux机器的内存使用情况,发现是内存和交换分区空间太小了. 对于虚拟机中的内存问题,可以直接通过更改虚拟机的硬件进行解 ...

  9. Linux下修改Swap分区大小

    据了解Linux下可以有两种方法创建交换空间,一种是创建交换分区,另一种是创建交换文件.本文记录的是创建交换文件的方法,因为我用的是这种方法.. 添加交换文件步骤: 1.找个地方创建一个.swap的文 ...

随机推荐

  1. getParameter getAttribute

    URL:http://localhost:8888/Test/index.jsp?test=123 <body> ${test} ${requestScope.test} <%req ...

  2. Python之窗口操作之find_window,set_foreground等

    在自动化测试过程中,常常需要模拟按键的操作,比如像窗口发送一个按键,实现鼠标点击的功能,在上一篇文章中,我和大家讨论了python文件生成为不依赖与python库的exe文件的方式(需要了解的朋友戳这 ...

  3. BZOJ 4823 [Cqoi2017]老C的方块 ——网络流

    lrd的题解:http://www.cnblogs.com/liu-runda/p/6695139.html 我还是太菜了.以后遇到这种题目应该分析分析性质的. 网络流复杂度真是$O(玄学)$ #in ...

  4. UOJ 34 多项式乘法 ——NTT

    [题目分析] 快速数论变换的模板题目. 与fft的方法类似,只是把复数域中的具有循环性质的单位复数根换成了模意义下的原根. 然后和fft一样写就好了,没有精度误差,但是跑起来比较慢. 这破题目改了好长 ...

  5. Spring Boot SpringSecurity5 身份验证

    对于没有访问权限的用户需要转到登录表单页面.要实现访问控制的方法多种多样,可以通过Aop.拦截器实现,也可以通过框架实现(如:Apache Shiro.Spring Security). pom.xm ...

  6. 升级完Android Studio3.2后,打包release出现的错误

    升级完Android Studio2.3后,打包release出现的错误 Error:Execution failed for task ':qq:lintVitalRelease'.> Lin ...

  7. ElasticSearch 索引查询使用指南——详细版

    我们通常用用_cat API检测集群是否健康. 确保9200端口号可用: curl 'localhost:9200/_cat/health?v' 绿色表示一切正常, 黄色表示所有的数据可用但是部分副本 ...

  8. css-包含块

    在CSS中,有事一个元素的位置和尺寸的计算都相对于一个矩形,这个矩形被称作包含块.包含块是一个相对的概念,比如 子元素的初始化布局总是在父元素的左上角,这就是一个相对的概念.其中父元素就是一个参照物, ...

  9. Android 网络编程之HttpURLConnection运用

    Android 网络编程之HttpURLConnection 利用HttpURLConnection对象,我们可以从网络中获取网页数据. 01 URL url = new URL("http ...

  10. Day 7 Linux之系统监控、硬盘分区等

    Linux之系统监控.硬盘分区等 系统监控 系统监视和进程控制工具—top和free 1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况, ...