Linux运维实战之6:挂载/卸载磁盘分区

上次博文我们具体讨论了Linux系统中磁盘的分区及格式化( http://www.178linux.com/60811),本次博文我们具体来说说分区的挂载哈!


问题引入

已经格式化好的分区如何与系统现有的文件系统建立关联(如何使用新分区)?

新的磁盘分区创建完成并格式化之后需要挂载(或装入)到目录树上才能被使用。

何谓挂载/卸载?

】将某个分区与某个目录进行关联的过程叫挂载(反之,拆除分区与目录的关联关系的过程叫卸载);被挂载的目录成为挂载点

windows系统中的挂载/卸载

在windows操作系统中, 挂载通常是指给磁盘分区(包括被虚拟出来的磁盘分区)分配一个盘符。 第三方软件,如磁盘分区管理软件、虚拟磁盘软件等,通常也附带挂载功能。当所有的盘符都分配完时,采用文件系统(分区)装入即挂载来访问新的分区。

范例

1、打开“磁盘管理”工具可以看到当前系统的磁盘使用情况:

Linux运维实战之6:挂载/卸载磁盘分区Linux运维实战之6:挂载/卸载磁盘分区

Linux运维实战之6:挂载/卸载磁盘分区

Linux运维实战之6:挂载/卸载磁盘分区

Linux运维实战之6:挂载/卸载磁盘分区

【注意】

挂载点必须为一空目录,否则无法挂载(这点与Linux不同,Linux系统中挂载点目录可以不为空,但挂载后,挂载点目录原有的内容会被隐藏)


Linux系统中的挂载/卸载

挂载/卸载条件及注意点:

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

2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后,挂载点中原有数据会被隐藏,因此不能挂载到系统常用目录上

3、卸载时,要确保没有进程正在访问挂载的设备,否则无法卸载; 

挂载命令–mount

语法

mount:不带任何参数显示当前系统所有的挂载情况
mount [-t fstype] LABEL="卷标" MOUNT_POINT
mount [-t fstype] DEVICE MOUNT_POINT
mount [-t fstype] UUID="UUID" MOUNT_POINT
说明:  
   DEVICE:
   设备文件:/dev/sda1, /dev/hdb2
   卷标:LABEL=“label”
   UUID: UUID="uuid"
   MOUNT_POINT:挂载点(通常是一个目录,用于作为文件系统或欲挂载分区的的访问入口)
【选项与参数】

-a:依照配置文件/etc/fstab 的数据将所有未挂载的磁盘都挂载上来
-l:单纯的输入 mount 会显示目前挂载的信息。加上-l 可增列 Label 名称!
-t:与 mkfs 的选项非常类似的,可以加上文件系统类型来指定欲挂载的类型(若不指定,系统会调用blkid命令自动识别文件系统类型)。
    常见的 Linux 支持类型有:ext2, ext3, vfat, reiserfs, iso9660(光盘格式),nfs, cifs,smbfs(此三种为网络文件系统类型)
-n:在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序的运行。但在某些情况下(例如单人维护模式)为了避免问题,会刻意不写入。此时就得要使用这个 -n 的选项了。
-L:系统除了利用装置文件名(例如 /dev/hdc6) 之外,还可以利用文件系统的卷标名称(Label)来进行挂载。最好为你的文件系统取一个独一无二的名称吧!
-o:后面可以接一些挂载时额外加上的参数!比方说账号、密码、读写权限等:
    ro, rw:      挂载文件系统成为只读或读写(默认挂载就是读写挂载)
async, sync:  此文件系统是否使用同步写入(sync) 或异步 (async) 的内存机制。默认为 async。

Tips:异步和同步的知识:

异步(async):cpu处理完数据存入内存后不会立刻写入外存,过一段时间后将多个文件一起写入外存(异步性能优于同步;异步的缺陷:断电后有可能导致数据丢失)

同步:cpu处理完的数据存入内存后立即写入外存(断电后数据不会丢失)

    noatime:关闭更新访问时间(有效减少IO量,系统优化的重要指标之一)

    auto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)

    dev, nodev: 是否允许此partition 上,可创建设备文件。 dev 为允许

    suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式

    exec, noexec: 是否允许此 partition 上运行二进制文件(安全手段);默认挂载是允许运行的

    user, nouser: 是否允许此 partition 让任何使用者运行mount;一般来说 mount 仅有 root 可以进行,但下达 user 参数,则可让一般 user 也能够对此 partition 进行 mount 。

    defaults:默认值为:rw,suid, dev, exec, auto, nouser, and async    

    remount: 重新挂载,这在系统出错,或重新升级参数时,很有用    

    mount -o remount,other_options DEVICE

    loop:本地回环设备:mount -o loop,others DEVICE MOUNT_POINT

    iocharset=value:指定访问文件系统所使用的字符集   

与挂载相关的进程命令

fuser [MOUNT_POINT]: 查看正在访问某挂载点的进程;

fuser -km [MOUNT_POINT]: 强行杀死正在访问此挂载点的进程;

【范例】

[root@Centos ~]# cd /media/cdrom/    #切换到光盘的挂载点
[root@Centos cdrom]# ll
total 676-r--r--r--. 2 root root     14 Mar  6  2013 CentOS_BuildTag
dr-xr-xr-x. 3 root root   2048 Mar  5  2013 EFI
-r--r--r--. 2 root root    212 Mar  3  2013 EULA
-r--r--r--. 2 root root  18009 Mar  3  2013 GPL
dr-xr-xr-x. 3 root root   2048 Mar  5  2013 images
dr-xr-xr-x. 2 root root   2048 Mar  5  2013 isolinux
dr-xr-xr-x. 2 root root 649216 Mar  6  2013 Packages
-r--r--r--. 2 root root   1354 Mar  3  2013 RELEASE-NOTES-en-US.html
dr-xr-xr-x. 2 root root   4096 Mar  6  2013 repodata
-r--r--r--. 2 root root   1706 Mar  3  2013 RPM-GPG-KEY-CentOS-6
-r--r--r--. 2 root root   1730 Mar  3  2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r--. 2 root root   1730 Mar  3  2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r--. 2 root root   1734 Mar  3  2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r--. 1 root root   3380 Mar  6  2013 TRANS.TBL
[root@Centos cdrom]# fuser -v /media/cdrom/          #详细显示该挂载点正在被哪个进程访问
              USER        PID   ACCESS      COMMAND
/media/cdrom/:   root     14669   ..c..    bash      #显示该挂载点正在被bash进程访问哈(此时是无法卸载该挂载点的,可以用fuser -km命令杀死该进程方可卸载)

挂载信息会写入/etc/mtab 文件中】

[root@Centos ~]# cat /etc/mtab    #查看挂载信息(不带任何参数的mount命令就是打印该配置文件来显示挂载情况的)
/dev/sda3 / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,rootcontext="system_u:object_r:tmpfs_t:s0" 0 0
/dev/sda1 /boot ext4 rw 0 0
/dev/sr0 /media/cdrom iso9660 ro 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
none /proc/fs/vmblock/mountPoint vmblock rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

[root@Centos ~]# mount           #与执行“cat /etc/mtab”的结果很类似
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

卸载命令–umount

umount DEVICE

umount MOUNT_POINT

【范例】

[root@Centos ~]# mount  #查看当前系统的挂载情况
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)    #光盘的挂载情况
[root@Centos ~]# umount /media/cdrom/    #卸载光盘
[root@Centos ~]# mount    #验证结果
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
[root@Centos ~]# mount -t iso9660 -o ro /dev/cdrom /media/cdrom/   #重新挂载光盘
[root@Centos ~]# cd /media/cdrom/      #切换到光盘的挂载目录
[root@Centos cdrom]# umount /dev/cdrom   #再次卸载光盘
umount: /media/cdrom: device is busy.         #显示设备忙(有进程正在访问该挂载点,提示用lsof或fuser命令查看详细信息)
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

挂载/卸载条件及注意点:

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

2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后,挂载点中原有数据会被隐藏,因此不能挂载到系统常用目录上

3、卸载时,要确保没有进程正在访问挂载的设备,否则无法卸载;

Linux系统中的挂载分为:手动挂载自动挂载开机挂载。下面分别介绍:

【手动挂载】

1、挂载EXT2/EXT3/EXT4文件系统

[root@Centos jjx]# fdisk -l /dev/sdb    #查看/sdb硬盘的分区情况
Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         276      112455   83  Linux
[root@Centos jjx]# mount     #不带任何参数的mount命令用于查看当前系统的所有挂载情况(没有发现/sdb硬盘的任何挂载)
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
[root@Centos jjx]# mkdir -pv /mydata   #创建一个空目录用作挂载点
mkdir: created directory `/mydata'
[root@Centos jjx]# mount /dev/sdb1 /mydata/     #挂载/sdb1分区到/mydata目录(未指定挂载的文件系统类型,系统会自动调用blkid命令以识别文件系统类型)
[root@Centos jjx]# mount             #验证结果/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 on /mydata type ext4 (rw)          #sdb1分区的挂载情况:文件系统类型为ext4、读写方式挂载
[root@Centos jjx]# df   #df命令显示当前系统所有磁盘的信息,也可以查看挂载情况
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3            102492488   1197448  96088668   2% /
tmpfs                   249192         0    249192   0% /dev/shm
/dev/sda1               198337     28604    159493  16% /boot
/dev/sdb1              2068499     32782   1930493   2% /mydata     #这里可以看到/sdb1的挂载情况

2、挂载光盘:  

/dev/cdrom -> sr0:cdrom通常是一个链接,新一点的硬件设备(包括VMware 9.0以上版本)通常是指向sr0

/dev/cdrom -> hdc:旧一点的设备(包括Vmware 9.0以前的虚拟机软件版本)通常cdrom是指向hdc

[root@Centos ~]# mount -t iso9660 /dev/cdrom /media/cdrom/   #挂载光盘到/media/cdrom下
mount: block device /dev/sr0 is write-protected, mounting read-only    #给出警告信息:光盘是只读挂载而系统默认是读写挂载,不能以读写挂载就给出警告
[root@Centos ~]# df -m  #df命令用于查看当前系统所有外存的使用情况
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda3               100091      1199     93808   2% /
tmpfs                      244         0       244   0% /dev/shm
/dev/sda1                  194        28       156  16% /boot
/dev/sr0                  4152      4152         0 100% /media/cdrom
[root@Centos ~]# mount    #不带任何参数的mount命令用于显示当前系统文件系统的挂载情况/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)     #光盘挂载情况(此系统上光盘实际是指向sr0)
[root@Centos ~]# ls -l /media/cdrom/     #验证挂载光盘后挂载点的内容
total 676-r--r--r--. 2 root root     14 Mar  6  2013 CentOS_BuildTag
dr-xr-xr-x. 3 root root   2048 Mar  5  2013 EFI
-r--r--r--. 2 root root    212 Mar  3  2013 EULA
-r--r--r--. 2 root root  18009 Mar  3  2013 GPL
dr-xr-xr-x. 3 root root   2048 Mar  5  2013 images
dr-xr-xr-x. 2 root root   2048 Mar  5  2013 isolinux
dr-xr-xr-x. 2 root root 649216 Mar  6  2013 Packages
-r--r--r--. 2 root root   1354 Mar  3  2013 RELEASE-NOTES-en-US.html
dr-xr-xr-x. 2 root root   4096 Mar  6  2013 repodata
-r--r--r--. 2 root root   1706 Mar  3  2013 RPM-GPG-KEY-CentOS-6
-r--r--r--. 2 root root   1730 Mar  3  2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r--. 2 root root   1730 Mar  3  2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r--. 2 root root   1734 Mar  3  2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r--. 1 root root   3380 Mar  6  2013 TRANS.TBL

3、挂载优盘:

U盘是哪个设备需要具体看情况而定;

现在的usb设备很多,如mp3,u盘,读卡器等,但在linux上不一定被认出来,现把自己挂载Kingston 4GB U盘过程分享出来!

插入U盘之后,按照下面的步骤:

(1)fdisk -l /dev/sd*      
fdisk -l 列出指定设备的分区表信息。由于usb盘是被模拟为scsi设备访问,所以会被自动命名为sd*。通常这一步就能找到U盘,如果U盘有指示灯也会亮,表示被找到。

[root@Centos cdrom]# fdisk -l /dev/sd*     #没有发现优盘哈
disk /dev/sda: 107.4 GB, 107374182400 bytes255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097863

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3              91       13055   104127488   83  Linux

Disk /dev/sda1: 209 MB, 209715200 bytes255 heads, 63 sectors/track, 25 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/sda2: 536 MB, 536870912 bytes255 heads, 63 sectors/track, 65 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/sda3: 106.6 GB, 106626547712 bytes255 heads, 63 sectors/track, 12963 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         276      112455   83  Linux

Disk /dev/sdb1: 2154 MB, 2154991104 bytes255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/sdb2: 115 MB, 115153920 bytes255 heads, 63 sectors/track, 14 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

(2)lsmod

如果执行上一个命令没有反应,或者某些信息显示模块没有加入,我们可以lsmod查看一下是否有usb_storage,scsi_mod(RHEL6上没有此模块),sd_mod模块。

[root@Centos cdrom]# lsmod | grep "usb-storage"   #没有加入usb-storage模块哈             
[root@Centos cdrom]# lsmod | grep "scsi_mod"     #没有加入scsi_mod模块哈
[root@Centos cdrom]# lsmod | grep "sd_mod"       #已经加入了sd_mod模块
sd_mod                 38976  4 crc_t10dif              1541  1 sd_mod

没有就modprobe [module],添加所缺模块:usb_storage, scsi_mod, sd_mod(RHEL6上没有scsi_mod模块)

在Linux下这些设备通常都是以一种叫做usb_storage的方式进行驱动(一般插入优盘后会自动安装/加载该驱动)。要使用他们必须加载此模块,当然,usbcore.o、usb-uhci.o、usb-ohci也肯定是不可缺少的。另外,若你系统中SCSI支持也是模块方式,那么这些模块也要加载

[root@Centos ~]# fdisk -l

Disk /dev/sda: 107.4 GB, 107374182400 bytes255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097863

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3              91       13055   104127488   83  Linux

Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         276      112455   83  Linux

Disk /dev/sdc: 3918 MB, 3918495744 bytes255 heads, 63 sectors/track, 476 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3072e18

   Device Boot      Start         End      Blocks   Id  System           #发现优盘了哈
   /dev/sdc1   *           1         476     3823438+   6  FAT16

Tips:

    在VMware虚拟机做此实验时,需要在虚拟机里添加usb控制器(我使用的VMware9.0版本无法识别USB3.0接口,因此挂载优盘老是识别不了,后来换个USB2.0的接口就能成功识别了。如果大家遇到这样的情况可以尝试下哈~~)

下面我们来卸载“usb-storage模块”再看看还是否能识别优盘:

[root@Centos ~]# modprobe -r usb_storage    #卸载usb_storage模块
[root@Centos ~]# lsmod | grep "usb_storage"   #没有发现usb_storage模块哈
[root@Centos ~]# fdisk -l          #优盘没有了哈
Disk /dev/sda: 107.4 GB, 107374182400 bytes255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097863

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3              91       13055   104127488   83  Linux

Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         276      112455   83  Linux

系统能识别优盘了,那接下来就可以挂载了:

这里需要先在mnt目录下面建一个udisk目录作为挂载点,然后将优盘挂载到此目录

[root@Centos ~]# mkdir -pv /mnt/udisk   #创建挂载优盘的目录
mkdir: created directory `/mnt/udisk'
[root@Centos ~]# mount -t vfat -o ro /dev/sdc1 /mnt/udisk  #以只读方式挂载优盘到刚刚创建的目录
[root@Centos ~]# mount/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdc1 on /mnt/udisk type vfat (ro)           #挂载成功了哈

补充:优盘挂载成功之后如果用modprobe命令卸载usb_storage驱动,会失败哈(类似于windows系统,如果有进程在访问优盘,那么是无法卸载优盘驱动的哈)

[root@Centos ~]# modprobe -r usb_storage     #卸载优盘驱动失败(提示正在被使用中)
FATAL: Module usb_storage is in use.

因此,拔出优盘前需要用umount命令卸载优盘。

4、挂载本地回环设备:通常用于挂载ISO镜像文件

语法:mount –o loop,other_options DEVICE MOUNT_POINT

举例:

Linux运维实战之6:挂载/卸载磁盘分区

5、磁盘参数修改:

文件系统卷标 (Label) 修改

磁盘的挂载可以通过文件系统的卷标(Label)来进行,但是要保证这个值的唯一性

我们可以通过mke2fs进行磁盘格式化来指定这个值,也可以通过elabel或tune2fs来修改这个值

【e2label】

语法:e2label 设备名称 新的Label名称

举例:用卷标来挂载分区

[root@Centos ~]# e2label /dev/sdb2 "NewMountPoint"  #设定新卷标(也可以用“tune2fs –L "NewMountPoint" /dev/sdb2”)
[root@Centos ~]# blkid /dev/sdb2     #验证新卷标的设定
/dev/sdb2: LABEL="NewMountPoint" UUID="2abf9662-48ad-4c2a-bbaf-ed87eebfcfd8" TYPE="ext4" 
[root@Centos ~]# mount -o ro -L "NewMountPoint" /mydata/    #用卷标来挂载
[root@Centos ~]# mount     #验证结果
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb2 on /mydata type ext4 (ro)           #用卷标挂载成功
[root@Centos ~]# df -m        #验证结果
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda3               100091      1374     93633   2% /
tmpfs                      244         0       244   0% /dev/shm
/dev/sda1                  194        28       156  16% /boot
/dev/sr0                  4152      4152         0 100% /media/cdrom
/dev/sdb2                  107         5        92   5% /mydata            #用卷标挂载成功

【自动挂载】

Tips:该功能我们在RHEL5是操作哈。RHEL6可能因为安全问题取消了自动挂载功能(这是我个人的理解哈)!

我们 cd /misc这个目录,ls看看这个目录里面有没东西:

[root@rhel5 ~]# cd /misc/
[root@rhel5 misc]# ls -l 
总计 0                  #可以看到没有任何内容
[root@rhel5 misc]# cd cd
[root@rhel5 cd]# ls            #没有任何内容却能够切换到cd目录中且其中的内容是光盘中的内容
Cluster         README-or.html         RELEASE-NOTES-ml.html
ClusterStorage  README-pa.html         RELEASE-NOTES-mr.html
EULA            README-pt_BR.html      RELEASE-NOTES-or.html
eula.en_US      README-ru.html         RELEASE-NOTES-pa.html
GPL             README-si.html         RELEASE-NOTES-pt_BR.html
images          README-ta.html         RELEASE-NOTES-ru.html
isolinux        README-te.html         RELEASE-NOTES-si.html
README-as.html  README-zh_CN.html      RELEASE-NOTES-ta.html
README-bn.html  README-zh_TW.html      RELEASE-NOTES-te.html
README-de.html  RELEASE-NOTES-as.html  RELEASE-NOTES-zh_CN.html
README-en       RELEASE-NOTES-bn.html  RELEASE-NOTES-zh_TW.html
README-en.html  RELEASE-NOTES-de.html  RPM-GPG-KEY-fedora
README-es.html  RELEASE-NOTES-en       RPM-GPG-KEY-fedora-test
README-fr.html  RELEASE-NOTES-en.html  RPM-GPG-KEY-redhat-auxiliary
README-gu.html  RELEASE-NOTES-es.html  RPM-GPG-KEY-redhat-beta
README-hi.html  RELEASE-NOTES-fr.html  RPM-GPG-KEY-redhat-former
README-it.html  RELEASE-NOTES-gu.html  RPM-GPG-KEY-redhat-release
README-ja.html  RELEASE-NOTES-hi.html  Server
README-kn.html  RELEASE-NOTES-it.html  TRANS.TBL
README-ko.html  RELEASE-NOTES-ja.html  VT
README-ml.html  RELEASE-NOTES-kn.html
README-mr.html  RELEASE-NOTES-ko.html

为什么没有这个目录我们却能够进入呢?这就是自动挂载了

当我们cd到自动挂载的目录,系统就会自动把分区挂载到这个目录,而不需要我们去手动挂载

自动挂载有这几个特点:        
被挂载的目录是不需要建立的,系统自动帮你建立        
自动挂载需要激活,没激活的情况下被挂载目录是不可见的

我们来看看这个系统自动挂载是怎么定义的,系统通过autofs服务自动挂载文件系统,需要后台的automount进程,autofs服务的开闭由/etc/init.d/autofs脚本控制,主要应用于软驱与光驱等场合,如果该设备一段时间没有被使用,autofs会自动卸载。

自动挂载分两个配置文件来完成:一个是主文件,一个是辅文件。

主文件只有一个 ,就是/etc/auto.master

Linux运维实战之6:挂载/卸载磁盘分区

辅助文件是自己在主文件里面定义的,下面请大家用vim打开主文件:vim /etc/auto.master

Linux运维实战之6:挂载/卸载磁盘分区

我们在下面添加一个自动挂载,主目录为automnt,辅助文件为 /etc/auto.automnt

就这样写:/automnt         /etc/auto.automnt

Linux运维实战之6:挂载/卸载磁盘分区

写好后保存退出,我们去看看主文件里面定义的/etc/auto.misc这个文件是怎么写滴哈~

Linux运维实战之6:挂载/卸载磁盘分区

大家估计看懂了吧,前面的cd就是最终挂载目录,中间就是文件类型,后面就是挂载的设备

直接退出,然后编写刚才我们那个自动挂载的辅助文件,辅助文件默认是没有的,我们需要手动建立

vim /etc/auto.automnt

然后把辅助文件的内容写进去,我们最终的挂载目录为dvd ,自动挂载,挂载的设备还是光盘,参照auto.misc写哈:

Linux运维实战之6:挂载/卸载磁盘分区

OK,然后保存退出,切记,辅助文件的语法格式要和主文件中定义的要一样,不然会失败的。

验证下结果:

[root@rhel5 ~]# ll /etc/auto*         
-rw-r--r-- 1 root root   47 08-10 20:39 /etc/auto.automnt           #可以看到已经创建了自定义的辅助文件哈
-rw------- 1 root root 2479 2007-01-11 /etc/autofs_ldap_auth.conf
-rw-r--r-- 1 root root  587 08-10 20:27 /etc/auto.master       
-rw-r--r-- 1 root root  581 2007-01-11 /etc/auto.misc
-rwxr-xr-x 1 root root 1292 2007-01-11 /etc/auto.net
-rwxr-xr-x 1 root root  558 2007-01-11 /etc/auto.smb

##然后重新启动自动挂载:service autofs restart ##
[root@rhel5 ~]# service autofs restart
停止 automount:                                           [确定]
启动 automount:                                           [确定]

##有没有automnt这个目录##
[root@rhel5 ~]# ll /
总计 138
drwxr-xr-x   2 root root     0 08-10 20:44 automnt    #已经有automnt目录了哈
drwxr-xr-x   2 root root  4096 2012-03-30 bin
drwxr-xr-x   4 root root  1024 2012-03-30 boot
drwxr-xr-x  11 root root  3760 08-10 19:08 dev
drwxr-xr-x  92 root root 12288 08-10 20:39 etc
drwxr-xr-x   3 root root  4096 2012-03-29 home
drwxr-xr-x  14 root root  4096 2012-03-30 lib
drwx------   2 root root 16384 2012-03-30 lost+found
drwxr-xr-x   2 root root  4096 08-10 19:05 media
drwxr-xr-x   2 root root     0 08-10 20:44 misc
drwxr-xr-x   3 root root  4096 2012-03-29 mnt
drwxr-xr-x   2 root root     0 08-10 20:44 net
drwxr-xr-x   2 root root  4096 2006-10-11 opt
dr-xr-xr-x 138 root root     0 08-10 19:03 proc
drwxr-x---  19 root root  4096 08-10 20:39 root
drwxr-xr-x   2 root root 12288 2012-03-29 sbin
drwxr-xr-x   4 root root     0 08-10 19:03 selinux
drwxr-xr-x   2 root root  4096 2006-10-11 srv
drwxr-xr-x  11 root root     0 08-10 19:03 sys
drwxrwxrwt  15 root root  4096 08-10 20:44 tmp
drwxr-xr-x  14 root root  4096 2012-03-30 usr
drwxr-xr-x  21 root root  4096 2012-03-30 var

##然后cd /automnt/进入这个目录,ls查看下/automntl/目录下没有文件并且cd dvd ,看能不能自动挂载##
[root@rhel5 ~]# cd /automnt/   
[root@rhel5 automnt]# ls    #automnt目录下没有任何文件哈
[root@rhel5 automnt]# cd dvd  #能够cd到dvd目录且能够自动挂载哈
[root@rhel5 dvd]# ls
Cluster         README-en.html  README-or.html         RELEASE-NOTES-de.html  RELEASE-NOTES-ml.html     RPM-GPG-KEY-fedora
...

1、自动挂载的主文件定义的主目录和辅助文件定义的最终目录都是不用手动建立的。这就算成功了,辅助文件内可以写分区的,也可以写nfs或者是samba的,不仅仅是光驱。

2、自动挂载主要是靠脚本文件“/etc/init.d/autofs”结合相关的配置文件来实现的。在REHL6上出于安全考虑取消了自动挂载,如果需要大家可以手动尝试自己编写相关的脚本来实现哈


【开机挂载和/etc/fstab配置文件】

/etc/fstab: 系统开机会自动挂载的文件系统

若想永久生效并在系统开机时挂载,需要通过修改/etc/fstab文件来实现。

该文件的语法及格式如下:

用空格隔开的6个字段,各字段含义如下:

字段1:挂载的设备(可以是以下任意一种)

                   设备文件、卷标、UUID

字段2:挂载点:通常是一个空目录(如果该目录中有内容,则挂载后该目录的内容会被隐藏;如果该目录正在被使用,则挂载会失败)

字段3:挂载选项(-o后面的参数)defaults表示使用默认选项,多个选项彼此间逗号分隔;

字段4:指定挂载的文件系统类型

字段5:转储频率(是否被dump备份)

            0: 从不备份;

            1:每日备份;

            2:每隔一天备份

字段6:自检次序(Fsck:是否以FSCK检验扇区):

启动的过程中,系统默认会以 fsck 检验我们的文件系统是否完整;通常是以下几个数字

        0:不检测;

        1:第一个检测;一般只有根文件系统被第一个检测;

        2

        9

【范例】

1、编辑/etc/fstab文件

Linux运维实战之6:挂载/卸载磁盘分区

2、键入“reboot”命令重启系统验证是否开机自动挂载了光盘

Linux运维实战之6:挂载/卸载磁盘分区


交换分区的挂载

1、交换分区基础:

Linux的交换分区:swap(虚拟内存)

说明:区别于windows系统,Linux中的交换分区必须是独立分区,且为独立文件系统;

交换分区多大?

科学计算类的服务器:交换内存可以尽可能大,比如为物理内存的2倍;

应用程序类的服务器:交换内存尽可能小,比如只给1G;

物理内存小于等于2G, swap=memory*2

2G<memory<4G, swap=memory*1.5

memory>4G, swap=4G

补充:如何查看内存大小

【free 命令】

选项:

     -m: 空间大小换算为MB

     -g: 空间大小换算为GB

Linux运维实战之6:挂载/卸载磁盘分区

字段说明:

字段1:总内存大小

字段2:已使用 内存大小

字段3:空闲内存大小

字段4:shared: 共享内存

字段5:buffer: 缓冲(通常用于写操作)

字段6:cached: 缓存(通常用于读操作)

第3行说明:

-/+ buffers/cache: 实际使用和空闲的内存是减去/加上缓冲及缓存大小的量 

2、创建交换分区:

mkswap DEVICE

-L label:设置卷标

启用交换分区:

swapon DEVICE:启用指定交换分区;

swapon -a: 启用所有交换分区

3、禁用交换分区:

swapoff DEVICE

swapoff –a:禁用所有交换分区

【范例】

[root@Centos ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  82  Linux swap / Solaris     #将该分区类型调整为swap
/dev/sdb2             263         276      112455   83  Linux
[root@Centos ~]# mkswap -L "NewSwap" /dev/sdb1           #创建交换分区,并设定卷标
Setting up swapspace version 1, size = 2104476 KiB
LABEL=NewSwap, UUID=e55a6111-3179-4a8e-a2e5-7bd79357398a
[root@Centos ~]# free -m        
             total       used       free     shared    buffers     cached
Mem:           486        280        205          0          8        177
-/+ buffers/cache:         94        392
Swap:          511          0        511    #目前交换分区大小
[root@Centos ~]# swapon /dev/sdb1          #启用刚创建的交换分区
[root@Centos ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           486        282        204          0          8        177
-/+ buffers/cache:         95        391
Swap:         2567          0       2567    #启用新交换分区后的情况
[root@Centos ~]# swapoff /dev/sdb1        #禁用新交换分区
[root@Centos ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           486        281        205          0          8        177
-/+ buffers/cache:         94        392
Swap:          511          0        511    #交换分区变回原大小
[root@Centos ~]# swapoff -a          #禁用所有的交换分区
[root@Centos ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           486        280        206          0          8        177
-/+ buffers/cache:         93        392
Swap:            0          0          0    #没有可用的交换分区了哈

4、开机自动启用交换分区,可定义于/etc/fstab中:

格式:DEVICE  swap   swap   defaults 0 0

注意点:

       挂载点:swap

       文件系统类型:swap

【范例】

Linux运维实战之6:挂载/卸载磁盘分区

这样就配置好了新的swap分区了,如果要立即生效还需要手动挂载一次。

Tips:

【配置谈经】

在Linux中,立即生效的配置不会永久生效(要永久生效需要写入配置文件);永久生效的配置不会立即生效(要立即生效需要重新加载相关服务)


本次博文的内容就这么多哈,欢迎各位大大拍砖!~~

原创文章,作者:N4_jjx,如若转载,请注明出处:http://www.178linux.com/62484

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-14 15:00

    非常的好,以问题的方式引入知识点,加油!