关于linux下远程挂载文件系统的总结

 

关于 linux下远程挂载文件系统的总结
2008-05-08 13:34:30

关于 linux下远程挂载文件系统的总结下面是参考资料:

一,挂载

我的机子同时装了 Windows Linux操作系统,通常情况下 Linux Windows的分区格式是不支持的。而我们个人用户用的最多的往往还是 Windows系统,在学习中免不了要在两个系统之间交换文件。幸好 Linux系统提供了 mount命令可用于挂载 Windows下的分区。为此我们可通 过此命令来在 Linux下挂载 Windows的分区来实现两个系统之间的文件交换。 (提示,目前的 Linux的系统好像对 NTFS分区格式的支持不是太 好,所以最好用 FAT32的分区格式。本例以 FAT32格式为例 )

   1. root用户登录 Linux

   2.进入 mnt 目录,新建一个文件夹 (用于装载下面将要挂载的 Windows分区 ),如取名为: windisk创建文件夹的命令如下: mkdir /mnt/windisk

   3.执行挂载命令 mount -t vfat /dev/hda5 /mnt/windisk

   *注意 : 命令中的 "hda5",数字 5代表的是你的硬盘上的分区编号,一般情况下主分区的第一个盘的编号为 1,第二个盘的编号为 2,也就是说 c 盘可表示为: hda1,如果你的主分区不只一个 C盘的话,那么其余的分区依此类推 。逻辑分区的第一个盘的编号为 5 也就是说 D 盘可表示为: hda5 E盘可表示为: had6,其余的依此类推。

   4.如果命令没有执行错误提示的话,那么现在在你的 Linux下应该可以访问你的 Windows系统下的分区了。执行命令: cd /mnt/windisk 回车,然后再执行命令 ls 回车。看 Windows下的文件是不是已经列出来了。

  挂载 U盘的方法和以上操作步骤一样。唯一的区别就是把上面第三步的 hda5 改为 sda1。原因是 Linux把外接的磁盘设备都当作了 scics设备来处理了。

二,测试


Windows操作系统之间,可以通过映射网络驱动器的方式,将某个共享目录映射成一个磁盘文件系统,在 Linux下,可以通过 smbmount命令来实现相似的功能,将 Windows的某个共享目录挂载到 Linux下的某个目录下。
测试平台:
Red Hat Enterprise Linux AS release 3 (Taroon)
Windows 2000 Advanced Server SP4
当前测试条件:
1 Windows Linux共处于同一个局域网中,可以互相 ping通,都未设置防火墙
2 Windows IP地址: 192.168.60.188
3 Linux IP地址: 192.168.60.189
4 Windows上当前有如下共享: c$ temp everyone具有读取权限)
5 Windows上的用户有 cmw(管理员组用户帐号), grp(管理员组用户帐号), guest(当前未启用),没有 root帐号
6 Linux上安装有相关的 RPM包: samba-client,它是 Samba客户端工具,安装后可以使用 smbmount命令


基本测试过程如下:
语法: smbmount //IP地址 /共享名 挂载点 -o 选项 1,选项 2……
1、 挂载 c$共享:
[root@rh root]# smbmount //192.168.60.188/c$ ./c$ -o username=cmw
Password:
[root@rh root]# cd c$
或:
[root@rh root]# smbmount //192.168.60.188/c$ ./c$ -o username=cmw,password=cmww
lovegrp
[root@rh root]# cd c$

2、 挂载 temp共享(启用 guest帐户)
[root@rh root]# smbmount //192.168.60.188/temp ./temp
Password:
[root@rh root]# cd temp/
[root@rh temp]# ls
samba webmin-1.260.tar.gz

此时,未指定帐号和密码,则使用环境变量 USER为帐号,使用环境变量 PASSWD作为密码,因为 Windows已经启用 guest帐号,且 temp共享为允许任何人读取,所以此次命令运行成功
[root@rh root]# umount ./temp
卸载网络文件系统
3、 挂载 temp共享(未启用 guest帐户)
[root@rh root]# smbmount //192.168.60.188/temp ./temp
Password:
Anonymous login successful
2068: tree connect failed: ERRDOS - ERRnoaccess (Access denied.)
SMB connection failed
此时, guest帐号被停用,所以连接失败。


三,其他说明:

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
  
  
  在 /etc/fstab文件里,第一列是挂载的文件系统的设备名,第二列是挂载点,第三列是挂载的文件系统类型,第四列是挂载的选项,选项间用逗号分隔。第五六列不知道是什么意思,还望高手指点。
  
  在最后两行是我手工添加的 windows下的 C D盘,加了 codepage=936 iocharset=cp936参数以支持中文文件名。参数 defaults实际上包含了一组默认参数:
  
   rw 以可读写模式挂载
   suid 开启用户 ID和群组 ID设置位
   dev 可解读文件系统上的字符或区块设备
   exec 可执行二进制文件
   auto 自动挂载
   nouser 使一般用户无法挂载
   async 以非同步方式执行文件系统的输入输出操作
  
  大家可以看到在这个列表里,光驱和软驱是不自动挂载的,参数设置为 noauto。(如果你非要设成自动挂载,你要确保每次开机时你的光驱和软驱里都要有盘,呵呵。)



PS:在实际应用中,本机本系统的挂载用第1中方法可以轻松实现。但通过 Linux服务器与 WinXP的挂载时,选用第2个方法测试成功,具体命令为: # smbmount //192.168.60.188/aaa /mnt/aaa -o username= //UserName(回车后会提示输入密码), 但服务器端只具有读的权限,是否可以通过修改命令行参数来改变权限未知。

挂载资源的卸载: #  smbumount  /mnt/aaa (需要注意命令 smbumount中间不是 unmount,挂载点必须是已经共享了的文件夹名称 )

 

补充:

 挂载点实际上就是 linux中的磁盘文件系统的入口目录,类似于 windows中的用来访问不同分区的 C: D: E:等盘符。其实 winxp也支持将一个磁盘分区挂在一个文件夹下面,只是我们 C: D:这样的盘符操作用惯了,一般没有将分区挂到文件夹。


linux操作系统将系统中的一切都作为文件来管理。在 windows中我们常见的硬件设备、磁盘分区等,在 linux中都被视作文件,对设备、分区的访问就是读写对应的文件。

--------------------------------------------------------------------------------------

  选择挂载点是必不可少的步骤,下面对各挂载点做一个简单介绍:
   1. / 根目录
  唯一必须挂载的目录。不要有任何的犹豫,选一个分区,挂载它!(在绝大多数情况下,有 10G的容量应该是够用了。当然了,很多东西都是多多益善的 )
   2. swap
  交换分区,可能不是必须的,不过按照传统,并且照顾到您的安全感,还是挂载它吧。它的容量只要大于您的物理内存就可以了,如果超过了您物理内存两倍的容量,那绝对是一种浪费。
   3. /home
  是用户的 home目录所在地,这个分区的大小取决于有多少用户。如果是多用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地控制普通用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普通用户访问哪些文件等。
   4. tmp
  用来存放临时文件。这对于多用户系统或者网络服务器来说是有必要的。这样即使程序运行时生成大量的临时文件,或者用户对系统进行了错误的操作,文件系统的其它部分仍然是安全的。因为文件系统的这一部分仍然还承受着读写操作,所以它通常会比其它的部分更快地发生问题。
   5. /var/log
  系统日志记录分区。一般多用户系统或者网络服务器要建立这个分区,因为设立了这个分区,即使系统的日志文件出现了问题,他们也不会邮箱到操作系统的主分区
   6. /var
  日志文件,经常会变动,硬盘读写率高的文件放在此中
   7. /usr
  应用程序目录。大部分的软件都安装在这里。就像是 Windows里面的 Program Files
   8. /bin
  存放程序,里面的程序可以直接通过命令调用,而不需要进入程序所在的文件夹。
   9. /dev
  存放设备文件
   10. /opt
  存放可选的安装文件,个人一般把自己下载的软件存在里面,比如永中 Office LumaQQ等等。
   11. /sbin
  存放标准系统管理文件
   12. /boot
  它包含了操作系统的内核和在启动系统过程中所要用到的文件,建这个分区是有必要的,因为目前大多数的 PC机要受到 BIOS的限制 ,况且如果有了一个单 独的 /boot启动分区,即使主要的根分区出现了问题,计算机依然能够启动。这个分区的大小约在 60MB—120MB之间。
   13. /srv
  一些服务启动之后,这些服务所需要取用的资料目录

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值