一、光盘挂载、卸载

RHEL6基础二十之RHEL文件挂载与卸载_第1张图片

在挂载外围设备时一般习惯性地将挂载点放在/mnt目录下,光盘对应的设备文件通常为“/dev/cdrom”

[root@justin ~]# mkdir /mnt/cdroom
[root@justin ~]# mount /dev/cdrom /mnt/cdroom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@justin ~]# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda2     ext4    9.9G  2.8G  6.6G  30% /
tmpfs        tmpfs    504M     0  504M   0% /dev/shm
/dev/sda1     ext4    194M   27M  158M  15% /boot
/dev/sda5     ext4    7.7G  146M  7.2G   2% /home
/dev/sr0   iso9660    2.9G  2.9G     0 100% /mnt/cdroom
[root@justin ~]#

由于光盘是只读的存储介质,因此在挂载时系统会出现“mounting read-only”的提示信息。另外,在df命令显示的结果中可以发现,光盘(光驱)的实际设备文件是/dev/sr0,/dev/cdrom其实只是一个符号链接,光盘的文件系统iso9660,如果在图形界面下系统会将光盘自动挂载到“/media/RHEL_6.3 x86_64 Disc 1”目录下,Linux允许同一个存储设备同时被挂载到多个挂载点,并不影响使用。

通过/mnt/cdroom就可以查看或者使用光盘内容,在卸载的时候需要退出所在目录,否则会提示设备在繁忙的信息

[root@justin ~]# cd /mnt/cdroom/ && ls
EULA                      RELEASE-NOTES-es-ES.html  RELEASE-NOTES-ru-RU.html
GPL                       RELEASE-NOTES-fr-FR.html  RELEASE-NOTES-si-LK.html
HighAvailability          RELEASE-NOTES-gu-IN.html  RELEASE-NOTES-ta-IN.html
images                    RELEASE-NOTES-hi-IN.html  RELEASE-NOTES-te-IN.html
isolinux                  RELEASE-NOTES-it-IT.html  RELEASE-NOTES-zh-CN.html
LoadBalancer              RELEASE-NOTES-ja-JP.html  RELEASE-NOTES-zh-TW.html
media.repo                RELEASE-NOTES-kn-IN.html  repodata
Packages                  RELEASE-NOTES-ko-KR.html  ResilientStorage
README                    RELEASE-NOTES-ml-IN.html  RPM-GPG-KEY-redhat-beta
RELEASE-NOTES-as-IN.html  RELEASE-NOTES-mr-IN.html  RPM-GPG-KEY-redhat-release
RELEASE-NOTES-bn-IN.html  RELEASE-NOTES-or-IN.html  Server
RELEASE-NOTES-de-DE.html  RELEASE-NOTES-pa-IN.html  TRANS.TBL
RELEASE-NOTES-en-US.html  RELEASE-NOTES-pt-BR.html
[root@justin cdroom]# umount /mnt/cdroom/
umount: /mnt/cdroom: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@justin cdroom]# cd
[root@justin ~]# umount /mnt/cdroom/
[root@justin ~]#

参数-o

-o ro:用唯读模式挂上

-o rw:用可读写模式挂上

-o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统

-o remount:将一个已经挂下的档案系统重新用不同的方式挂上

[root@justin ~]# mount -o remount,ro /dev/ops/databases
[root@justin ~]# mount -o loop /tmp/image.iso /mnt/cdrom


如果发现有提示“device is busy”,找到是什么进程使得他busy

[root@justin ~]# fuser -m /mnt/cdrom    将会显示使用这个模块的pid
[root@justin ~]# fuser -mk /mnt/cdrom    将会直接kill那个pid

fuser

        可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。

-m 参数显示所有使用指定文件系统的进程,后面可以跟挂载点,或是dev设备

-v 参数给出详细的输出

-i 参数,交互模式,执行操作前询问


如下情况将导致文件系统处于“busy”状态:

      1) 文件系统上面有打开的文件

       2) 某个进程的工作目录在此文件系统上

       3) 文件系统上面的缓存文件正在被使用


lsof也可以找出被特定进程所打开的文件,目录,套接字,设备.


二、挂载iso镜像文件

由于系统里没有iso镜像文件,这里把/home目录制作成光盘镜像文件

RHEL6基础二十之RHEL文件挂载与卸载_第2张图片

[root@justin ~]# mkisofs -r -J -V cdiso -o /usr/local/src/cdiso.iso /home
I: -input-charset not specified, using utf-8 (detected in locale settings)
Using _____000 for  /home/justin/桌面 (图片)
Using _____001 for  /home/justin/图片 (视频)
Using _____002 for  /home/justin/视频 (音乐)
Using _____003 for  /home/justin/音乐 (模板)
Using _____004 for  /home/justin/模板 (文档)
Using _____005 for  /home/justin/文档 (下载)
Using PREFE000.DES;1 for  /home/justin/.local/share/applications/preferred-mail-reader.desktop (preferred-web-browser.desktop)
Using 8665C000.;1 for  /home/justin/.pulse/8665cfcff9c76f94fac16e0000000022-default-source (8665cfcff9c76f94fac16e0000000022-default-sink)
Using 8665C001.;1 for  /home/justin/.pulse/8665cfcff9c76f94fac16e0000000022-default-sink (8665cfcff9c76f94fac16e0000000022-runtime)
Using 8665C000.TDB;1 for  /home/justin/.pulse/8665cfcff9c76f94fac16e0000000022-card-database.tdb (8665cfcff9c76f94fac16e0000000022-stream-volumes.tdb)
Using 8665C001.TDB;1 for  /home/justin/.pulse/8665cfcff9c76f94fac16e0000000022-stream-volumes.tdb (8665cfcff9c76f94fac16e0000000022-device-volumes.tdb)
Total translation table size: 0
Total rockridge attributes bytes: 28589
Total directory bytes: 202000
Path table size(bytes): 1456
Max brk space used 6b000
825 extents written (1 MB)
[root@justin ~]# mkdir /mnt/cdroom
[root@justin ~]# mount -o loop -t iso9660 /usr/local/src/cdiso.iso /mnt/cdroom/
[root@justin ~]# cd /mnt/cdroom/
[root@justin cdroom]# ll
总用量 49
dr-xr-xr-x  3 root root  2048 10月 11 15:21 default
dr-xr-xr-x  3 root root  2048 10月 11 10:46 file
-r--r--r--  1 root root     4 9月  24 13:50 i
dr-xr-xr-x 28 root root  6144 10月 14 22:12 justin
dr-xr-xr-x  4 root root  2048 10月 14 22:12 justin1
dr-xr-xr-x  2 root root  2048 9月  18 15:30 lost+found
dr-xr-xr-x  4 root root  2048 10月 10 11:08 study6
-r-xr-xr-x  1 root root    17 10月 11 15:14 test
-r--r--r--  1 root root 31991 10月 22 18:45 top1
[root@justin cdroom]#

三、移动硬盘、U盘挂载

移动硬盘、U盘挂载和以上类似,各自的文件名可以通过[root@justin ~]# fdisk -l查看

对ntfs格式的磁盘分区应使用-t ntfs 参数,对fat32格式的磁盘分区应使用-t vfat参数。若汉字文件名显示为乱码或不显示,应使用-o iocharset=cp936参数

四、挂接Windows文件共享

在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba 软件包。这里还没安装,以下为挂载的一个例子

 [root@CHINFO8 ~]# rpm -qa|grep samba
samba-client-3.0.33-3.37.el5
samba-common-3.0.33-3.37.el5
[root@CHINFO8 ~]#  
[root@justin ~]# mount -t smbfs -o username=administrator,password=123 //10.15.72.73/d$ /mnt/samba

使用smb协议挂载很难解决乱码问题,使用cifs则没乱码问题

[root@justin ~]# mount -t cifs -o username=admin,password=123 //10.15.23.73/dmpfile /data
[root@localhost ~]# mount -t cifs -o username=app,password=app127 //10.10.2.21/d$/pdf/MRGG /opt/MRGG
mount: //10.10.2.21/d$/pdf/MRGG is write-protected, mounting read-only
mount: cannot mount //10.10.2.21/d$/pdf/MRGG read-only
[root@localhost ~]# yum -y install cifs-utils samba-client
[root@localhost ~]# smbclient -L //http://10.10.2.21 -U app         查看一下该用户共享权限下的共享情况
[root@localhost ~]# mount -t cifs -o username=app,password=app127 //10.10.2.21/d$/pdf/MRGG /opt/MRGG
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
[root@localhost ~]# mount --verbose -t cifs -o username=app,password=app127,vers=2.1,sec=krb5 //10.10.2.21/d$/pdf/MRGG /opt/MRGG
[root@localhost ~]# tail -50 /var/log/messages
Nov 22 13:30:05 localhost kernel: CIFS VFS: cifs_mount failed w/return code = -13
[root@localhost ~]# mount -t cifs -o username=app,password=app127 //10.10.2.21/pdf/MRGG /opt/MRGG




自动挂载、fstab

以上挂载方式在重启机器会丢失,再次使用需重新挂载,可以通过修改/etc/fstab文件来完成文件系统的自动挂载。/etc/fstab称为文件系统数据表(File System Table),Linux在每次开机的时候都会按照这个文件中的配置来自动挂载相应的文件系统。

[root@justin ~]# tail -2 /etc/fstab
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[root@justin ~]#

以第二行说明各项租用

第1字段proc:需要挂载的设备文件名。

第2字段/proc:挂载点,挂载点必须是一个目录,而且必须用绝对路径。对于交换分区,这个字段定义为swap。

第3字段proc:文件系统的类型。如果是ext4文件系统,则写成ext4;如果是FAT32文件系统,则写成vfat;如果是光盘,可以写成auto,由系统自动检测,或者是iso9660这种标准格式。
第4字段defaults:挂载选项。一般都是采用“defaults”,等于rw,suid,dev,exec,auto,nouser,async

                             _netdev:代表该挂载的磁盘分区为网络磁盘分区,Centos7挂载存储盘需要加上此参数                   

                             intr参数为了解决当网络出现故障时,我们可以通过按下ctrl+c组合键来终止操作

                             soft 参数是为了向用户输出错误信息

                    noatime Do not update inode access times on this filesystem 挂载文件系统的时候设置 noatime 可以显著提高文件系统的性能

                     nodiratime  Do not update directory inode access times on this filesystem.

载文件系统的时候设置 noatime 可以显著提高文件系统的性能。默认情况下,Linux ext2/ext3 文件系统在文件被访问、创建、修改等的时候记录下了文件的一些时间戳,比如:文件创建时间、最近一次修改时间和最近一次访问时间。因为系统运行的时候要访问大量文件,如果能减少一些动作(比如减少时间戳的记录次数等)将会显著提高磁盘 IO 的效率、提升文件系统的性能。Linux 提供了 noatime 这个参数来禁止记录最近一次访问时间戳。

inode 的标记位是 NOATIME 的话就直接返回了,根本就走不到 NODIRATIME 那里去,所以只设置 noatime 就可以了,不必再设置 nodiratime.

    自动与手动挂载:

                auto 在启动或在终端中输入mount -a时自动挂载

                noauto 设备(分区)只能手动挂载

    读写权限:

                ro 挂载为只读权限

                rw 挂载为读写权限

    可执行:

                exec 是一个默认设置项,它使在那个分区中的可执行的二进制文件能够执行

                noexec 二进制文件不允许执行。千万不要在你的root分区中用这个选项!!!

    I/O同步:

                sync 所有的I/O将以同步方式进行

                async 所有的I/O将以非同步方式进行

    户挂载权限:

                user 允许任何用户挂载设备。 Implies noexec,nosuid,nodev unless overridden.

                nouser 只允许root用户挂载。这是默认设置。

                            请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto

第5字段0:文件系统是否需要dump备份(dump是一个备份工具),一般为1时表示需要,为0设表示忽略。
第6字段0:表示在系统启动时是否检查这个文件系统以及检查的顺序,设为0表示不检查,设为1表示优先检查,2表示其次检查。对于根分区应设为1,其他分区设为2或者是0

第四列:parameters:文件系统的参数

Async/sync

设置是否为同步方式运行,默认为async

auto/noauto 

 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto

rw/ro        

 是否以以只读或者读写模式挂载

exec/noexec        

 限制此文件系统内是否能够进行"执行"的操作

user/nouser

是否允许用户使用mount命令挂载

suid/nosuid

是否允许SUID的存在

Usrquota

启动文件系统支持磁盘配额模式

Grpquota

启动文件系统对群组磁盘配额模式的支持

Defaults

同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置

 

第五列:能否被dump备份命令作用:dump是一个用来作为备份的命令。通常这个参数的值为0或者1

         0

代表不要做dump备份

         1

代表要每天进行dump的操作

         2

代表不定日期的进行dump操作

 

第六列是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。

0

不要检验

1

最早检验(一般根目录会选择)

2

1级别检验完成之后进行检验

 

sysfs                   /sys          sysfs     defaults                           0 0
proc                    /proc         proc      defaults                           0 0
/dev/cdrom              /media        iso9660   loop,ro                            0 0
//10.15.23.73/dmpfile   /data         cifs      username=admin,password=123,rw     0 0


挂载磁盘最好使用UUID号来挂载

[root@localhost libexec]# blkid
/dev/sda3: UUID="eee214fe-4b64-44b6-8b3c-ed0f8e63e32a" TYPE="ext4" 
/dev/sda1: UUID="fc233792-7e59-487c-8359-a464b7b66097" TYPE="ext4" 
/dev/sda2: UUID="680ec16a-b4e9-4dc8-8bee-aaf45587e173" TYPE="swap" 
/dev/sdb1: UUID="0251d493-62de-4c4e-8b13-b82bfd344d69" TYPE="ext4" 
[root@localhost libexec]# vim /etc/fstab 
UUID=0251d493-62de-4c4e-8b13-b82bfd344d69       /sdb1               ext4    defaults       0 0