Linux 挂载文件系统

1、挂载点必须是一个目录。

2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。
光盘是ISO9660;
软盘是fat16或ext2;
windows NT是fat16、NTFS;
windows98是fat16、fat32;
windows2000和windowsXP是fat16、fat32、 NTFS。
挂载前要了解linux是否支持所要挂载的文件系统格式。

挂载时使用mount命令:
格式:mount [-参数] [设备名称] [挂载点]

其中常用的参数有

-t<文件系统类型> 指定设备的文件系统类型,常见的有:
minix linux最早使用的文件系统
ext2 linux目前常用的文件系统
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 网络文件系统
iso9660 CD-ROM光盘标准文件系统
ntfs windows NT 2000的文件系统
hpfs OS/2文件系统
auto 自动检测文件系统

-o<选项> 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。常用的有
codepage=XXX 代码页
iocharset=XXX 字符集

ro 以只读方式挂载
rw 以读写方式挂载
nouser 使一般用户无法挂载
user 可以让一般用户挂载设备

提醒一下,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存在。(不懂?说白了点就是你要把文件系统挂载到哪,首先要先建上个目录。这样OK?)

例子:windows98装在hda1分区,同时计算机上还有软盘和光盘需要挂载。
# mk /mnt/winc
# mk /mnt/floppy
# mk /mnt/cdrom
# mount -t vfat /dev/hda1 /mnt/winc
# mount -t msdos /dev/fd0 /mnt/floppy
# mount -t iso9660 /dev/cdrom /mnt/cdrom
现在就可以进入/mnt/winc等目录读写这些文件系统了。

要保证最后两行的命令不出错,要确保软驱和光驱里有盘。(要是硬盘的磁盘片也可以经常随时更换的话,我想就不会犯这样的错误了 :-> )
如果你的windows98目录里有中文文件名,使用上面的命令挂载后,显示的是一堆乱码。这就要用到 -o 参数里的codepage iocharset选项。

codepage指定文件系统的代码页,简体中文中文代码是936;
iocharset指定字符集,简体中文一般用cp936或 gb2312。

当挂载的文件系统linux不支持时,mount一定报错,如windows2000的ntfs文件系统。可以重新编译linux内核以获得对该文件系统的支持。关于重新编译linux内核,就不在这里说了。

四 、自动挂载

每次开机访问windows分区都要运行mount命令显然太烦琐,为什么访问其他的linux分区不用使用mount命令呢?
其实,每次开机时,linux自动将需要挂载的linux分区挂载上了。那么我们是不是可以设定让linux在启动的时候也挂载我们希望挂载的分区,如windows分区,以实现文件系统的自动挂载呢?
这是完全可以的。在/etc目录下有个fstab文件,它里面列出了linux开机时自动挂载的文件系统的列表。我的/etc/fstab文件如下:

/dev/hda2 / ext3 defaults 1 1
/dev/hda1 /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,codepage=936,iocharset=gb2312 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/hdb1 /mnt/winc vfat defaults,codepage=936,iocharset=cp936 0 0
/dev/hda5 /mnt/wind vfat defaults,codepage=936,iocharset=cp936 0 0
其他用户也可以有读写权限,而且也能正常显示中文
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/hda9 /mnt/h vfat rw,codepage=936,iocharset=cp936 0 0
要想对所有用户开放写权限,在fstab里相应设备加入umask=000参数
/dev/hda9 /mnt/Win-G: vfat exec,dev,nosuid,rw,umask=000,iocharset=cp936 0 0

在/etc/fstab文件里,第一列是挂载的文件系统的设备名,第二列是挂载点,第三列是挂载的文件系统类型,第四列是挂载的选项,选项间用逗号分隔。第五六列后面的两个数值分别代表Dump frequency和fsck检查顺序.Dump frequency是指能否用dump工具进行备份以及频率是多少(0表示不能).fsck检查顺序表示开机运行时是否用fsck进行检查以及顺序的次序.一般windows的分区都是0 0,而只有在linux分区时,才要用到这两个选项.
而/etc/fstab这个文件就是系统挂载的依据.还有两个重要选项,user 和auto.user代表用户可以挂载,auto是指可以用mount -a自动挂载(系统开机时会执行这个命令).

在最后两行是我手工添加的windows下的C;D盘,加了codepage=936和iocharset=cp936参数以支持中文文件名。参数defaults实际上包含了一组默认参数:

rw 以可读写模式挂载
suid 开启用户ID和群组ID设置位
dev 可解读文件系统上的字符或区块设备
exec 可执行二进制文件
auto 自动挂载
nouser 使一般用户无法挂载
async 以非同步方式执行文件系统的输入输出操作

大家可以看到在这个列表里,光驱和软驱是不自动挂载的,参数设置为noauto。(如果你非要设成自动挂载,你要确保每次开机时你的光驱和软驱里都要有盘,呵呵。)

五、第二种方法自动挂载

automount的使用方法:
首先确认你的linux已经安装autofs这个包.
如果你不想每次开机都手动启动autofs服务,就运行setup,在System services里把
autofs选上.

编辑/etc/auto.master,把# /misc /etc/auto.misc –timeout=60
这一行的#号去掉.

编辑/etc/auto.misc
照下面的样子加入要自动mount的分区的配置.(不要全跟我一样,我只是举个例子)
名字 分区类型 设备名
cdrom -fstype=auto : /dev/cdrom
floppy -fstype=auto :/dev/fd0
c -fstype=auto,iocharset=cp936 :/dev/hda1
d -fstype=auto,iocharset=cp936 :/dev/hda5
hda7 -fstype=auto :/dev/hda7
.
iocharset=cp936是针对windows分区的,linux分区不要加这个
修改完毕后,重新启动一下autofs服务,方法/etc/init.d/autofs restart
现在你就可以很方便的访问任何一个分区,包括光驱,软驱了.
比如你在终端里输入cd /misc/c,那么系统就会自动把/dev/hda1分区mount
到/misc/c目录上.cd /misc/cdrom就可以访问光驱.如果60妙内你没再访问自动
mount上的分区,那么系统自动会把它umount掉.

/misc目录下的cdrom,floppy,c….等目录是系统自动建的,umount后这些目录会被
自动删除.不要手动在/misc目录下建任何目录或文件.

为了避免于fstab里的自动mount分区冲突,把/etc/fstab里的
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
这两行删除掉.

现在你可以在桌面上建一些快捷键,让它链接到/misc/xxx,你就可以很方便地
访问各个分区了.

当然把mount -o rw -t vfat /dev/hdb7 /mnt/f codepage=936 iocharset=cp936这句话添加到/etc/rc.local的最后面,然后保存,重起

六、卸载(umount)
如果你已经用指令将软盘装载进相应目录,就不要直接将它们从软驱中取出来,否则可能会导致信息丢失;已经装载的光盘驱动器更是会令面板上的弹出键暂时失效以阻止你将光盘直接取出。
在你取出它们之前,首先要确定已经没有用户对它们进行访问操作,包括没有工作窗口处在该磁盘驱动器被装载的目录。卸载指令的格式如下:
  umount 卸载目录名
  如用户想要卸载软盘,可以用如下指令:
  umount /mnt/floppy

七、使用Mtools
在Linux中想要共享Windows系统资源,除了上面介绍的装载(mount)命令之外,还有一组名为Mtools的软件包可以实现这一功能。和大多数实用工具一样,Mtools软件包亦是Linux系统默认的安装套件。你可以在http://mtools.ltnb.lu/下载到它的最新版本 mtools-3.9.7.tar.gz。
(一)Mtools命令
对于熟悉DOS命令的用户来说,Mtools命令会让他们感觉到像回到了DOS的世界。在下面的表格中我们可以看出它们有多么相似:
很显然,Mtools命令是简单地在DOS命令前加上了一个m前缀,功能还是和在DOS下一样的。须要注意的是,更改目录路径在DOS命令中可以有 cd和chdir两种命令格式,但是在Mtools中只有mcd一种格式。类似的在Mtools中没有对应的命令还有mkdir、rmdir、 rename等等。
(二)mtools.conf文档的配置
因为Mtools是一个仿真DOS命令的软件包,所以它也保存着DOS系统下的磁盘驱动器概念。Mtools不但可以实现A盘 、B盘、 C盘的概念,对于一些特殊驱动器(如ZIP驱动器)更有专门的命令(mzip)以让用户方便地进行操作。在默认的环境下,A盘和B盘分别对应着两个软盘驱动器(如果有的话),N盘则对应着DOSMU启动盘的镜像文件。
我们可以通过修改/etc/mtools.conf文档来改变默认的配置,当然在做出修改之前你仍要对Linux下的设备文件名有相当的认识才行(请参考上一期本版有关设备及其文件名的介绍)。假设你的机器有一个1.44MB软驱(A),硬盘挂在第一个IDE接口的主位置上,在第一个分区(C盘)中安装有Windows操作系统,光驱挂在第二个IDE接口的主位置上(D盘),以及SCSI盘等,则可以对mtools.conf文档简单配置如下:
mtools.conf
drive a: file=″/dev/fd0″ exclusive 1.44m
drive c: file=″/dev/hda1″
drive d: file=″/dev/hdc″
drive X: file=″/dev/rdsk/c0t5d0s2″ partition=4 scsi=1 nodelay
(三)Mtools命令的使用
Mtools的命令系统和DOS有很多相似之处,比如在命令后面可以加不同的参数以实现更为丰富的功能(Mtools命令的参数使用方法是在命令后面加“-<参数>”,你可以把它想象成用“-”代替了DOS命令使用的“/”),可以使用通配符“?”和“*”。更为方便的是,使用 Mtools不需要事先装载(mount)和事后卸载(umount)。
下面我们以目录列表命令mdir为例作说明(想知道其它命令的使用格式和更多的可用参数可以用man 命令查看相关帮助系统)。mdir的功能是对DOS目录和其中的文档进行列表操作。命令格式如下:
mdir [-/] [-f] [-w] [-a] [-X] msdosfile [msdosfile]
各命令参数的功能分述如下:
/:输出当前路径下的所有目录和文档,相当于DOS命令dir中的“s”参数;
f:列表时不尝试计算当前分区的自由空间,对于大硬盘来说,这样做可以节省一些读入和扫描分区表(FAT)的时间;
w:列表时在一行中显示多个目录文档,这种输出格式将不显示文档的大小和创建时间,相当于DOS命令dir中的“w”参数;
a:列出隐藏的目录文档;
X:简要列表, 列出路径名而不列出其它附加的信息。
一些具体的应用实例:
1.列表A盘下的所有目录文档(不包括隐藏的目录文档)
mdir -/ a:
2.列表C盘Windows目录下含有“abc”的目录文档
mdir c:/windows/*abc*
或者mdir c:windows*Abc*
注:在Mtools命令中,/和是可以混用的。又因为列表的是DOS系统下的文档,对大小写并不敏感,所以“abc”和“Abc”在这里是等价的。而通配符“*”的用法和DOS命令亦有所不同。

八、在Windows系统中共享Linux系统的文档
无论对于刚接触Linux的新手还是对之已经熟悉的高手,恐怕都免不了想在Windows系统中调阅Linux系统的文档。这可以使用在Windows系统下观看Linux分区的小软件(如fsdext2等)。这里再向各位推荐两种可以实现这种功能的小软件。
(一)Linuxindos
Linuxindos是一个不到500KB的小程序,笔者找到的版本是Beta 0.9的DEMO版,用户可以在http://best.163.com/~linux/soft/下载试用。程序不需安装就可以在Windows系统下运行,使用也非常简单。
在Windows系统下将linuxindos.zip解压到硬盘目录,用户就会看到一个带着企鹅图标的可执行程序LiD95Demo.exe。启动程序后,会出现一个接口非常简单的窗口,当用户挑选一个含有Linux系统文档的磁盘驱动器以后,Linux分区中的所有文档就会显示出来,左边窗口列出的是Linux分区中的目录,而右窗口就列出了目录内的文档,感觉就像在Windows的资源管理器中一样。
(二)Explore2fs
这是一个更为小巧的自由软件,大小约308KB,用户也可以在http://best.163.com/~linux/soft/下载使用。正如它的名字一样,这是一个有着类似资源管理器窗口的程序,通过它你可以读取Linux系统下的分区。和Linuxindos一样,Explore2fs的主视窗亦分为左右两个,左边显示的是Linux中的目录,而右边显示的就是目录中的文档了,可以简单地将右边视窗中的文档直接拖到Windows系统分区中。
在右边视窗中选择好文档后,按下鼠标右键可以选择相应的操作,“Export file”是直接导出文档,而“Export to Text”则是除去文档的分隔符后导出和TEXT兼容的文本文档。 

九、linux下挂载ufs分区

freebsd
localhost:~# dmesg |grep bsd
hda2:
localhost:~# mount -r -t ufs -o ufstype=ufs2 /dev/hda13 /mnt/freebsd/
fstab
代码:
/dev/hda13 /mnt/freebsd ufs defaults,ro,ufstype=ufs2 0 0

solaris
localhost:~# dmesg |grep solaris
hdb2:
localhost:~# mount -r -t ufs -o ufstype=sunx86 /dev/hdb8 /mnt/solaris/
fstab
代码:
/dev/hda13 /mnt/solaris ufs defaults,ro,ufstype=sunx86 0 0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部