llystar 2014-02-27
文 件系统的格式化完毕后,需要将文件系统挂载到目录树上我们才可以使用,如果你要用来挂载的目录里面并不是空的,那么挂载了文件系统之后,原目录下的东西就 会暂时的消失。举个例子来说,假设你的 /home 原本与根目录 (/) 在同一个文件系统中,底下原本就有 /home/test 与 /home/vbird 两个目录。然后你想要加入新的硬盘,并且直接挂载 /home 底下,那么当你挂载上新的分割槽时,则 /home 目录显示的是新分割槽内的数据,至于原先的 test 与 vbird 这两个目录就会暂时的被隐藏掉了!并不是被覆盖掉,而是暂时的隐藏了起来,等到新分割槽被卸除之后,则 /home 原本的内容就会再次的跑出来
语法:
[root@www ~]# mount -a
[root@www ~]# mount [-l]
[root@www ~]# mount [-t 文件系统] [-LLabel名] [-o 额外选项] 装置文件名 挂载点
选项与参数:
-a :依照配置文件/etc/fstab 的数据将所有未挂载的磁盘都挂载上来
-l :单纯的输入 mount 会显示目前挂载的信息。加上-l 可增列 Label 名称!
-t :与 mkfs 的选项非常类似的,可以加上文件系统种类来指定欲挂载的类型。常见的 Linux 支持类型有:ext2, ext3, vfat, reiserfs, iso9660(光盘格式),nfs, cifs,smbfs(此三种为网络文件系统类型)
-n :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序的运行。但在某些情况下(例如单人维护模式)为了避免问题,会刻意不写入。此时就得要使用这个 -n 的选项了。
-L :系统除了利用装置文件名(例如 /dev/hdc6) 之外,还可以利用文件系统的标头名称
(Label)来进行挂载。最好为你的文件系统取一个独一无二的名称吧!
-o :后面可以接一些挂载时额外加上的参数!比方说账号、密码、读写权限等:
ro, rw: 挂载文件系统成为只读(ro) 或可擦写(rw)
async, sync: 此文件系统是否使用同步写入(sync) 或异步 (async) 的内存机制,请参考文件系统运行方式。默认为 async。
auto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)
dev, nodev: 是否允许此partition 上,可创建装置文件? dev 为可允许
suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式?
exec, noexec: 是否允许此 partition 上拥有可运行 binary 文件?
user, nouser: 是否允许此 partition 让任何使用者运行mount ?一般来说 mount 仅有 root 可以进行,但下达 user 参数,则可让一般 user 也能够对此 partition 进行 mount 。
defaults: 默认值为:rw,suid, dev, exec, auto, nouser, and async
remount: 重新挂载,这在系统出错,或重新升级参数时,很有用
举例1:挂载EXT2/EXT3文件系统
[root@localhost ~]# mkdir /mnt/sda7 [root@localhost ~]# mount /dev/sda7/mnt/sda7 [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda2 9920624 4329132 5079424 47% / /dev/sda3 4956316 141272 4559212 4% /home /dev/sda1 101086 11726 84141 13% /boot tmpfs 1037452 0 1037452 0% /dev/shm /dev/sda6 1976312 42072 1833836 3% /mnt/sda6 .host:/ 80148252 59099424 21048828 74% /mnt/hgfs /dev/sda7 194450 9016 175396 5% /mnt/sda7
举例2:挂载cd/dvd 光盘
[root@localhost ~]# mount -t iso9660/dev/cdrom /media/cdrom/ mount: block device /dev/cdrom iswrite-protected, mounting read-only [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda2 9920624 4329132 5079424 47% / /dev/sda3 4956316 141272 4559212 4% /home /dev/sda1 101086 11726 84141 13% /boot tmpfs 1037452 0 1037452 0% /dev/shm /dev/sda6 1976312 42072 1833836 3% /mnt/sda6 .host:/ 80148252 59231380 20916872 74% /mnt/hgfs /dev/sda7 194450 9016 175396 5% /mnt/sda7 /dev/hdc 1651852 1651852 0 100% /media/cdrom
举例3:挂载U盘
[root@localhost ~]# mkdir /media/flash [root@localhost ~]# mount -t vfat -oiocharset=cp950 /dev/sdb1 /media/flash // iocharset为指定中文字符 [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda2 9920624 4329164 5079392 47% / /dev/sda3 4956316 141272 4559212 4% /home /dev/sda1 101086 11726 84141 13% /boot tmpfs 1037452 0 1037452 0% /dev/shm /dev/sda6 1976312 42072 1833836 3% /mnt/sda6 .host:/ 80148252 59231444 20916808 74% /mnt/hgfs /dev/sda7 194450 9016 175396 5% /mnt/sda7 /dev/hdc 1651852 1651852 0 100% /media/cdrom /dev/sdb1 3977678 1385740 2591938 35% /media/flash
举例4:挂载信息会写入/etc/mtab 文件中
[root@localhost ~]# cat /etc/mtab /dev/sda2 / ext3 rw 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 devpts /dev/pts devpts rw,gid=5,mode=620 00 /dev/sda3 /home ext3 rw 0 0 /dev/sda1 /boot ext3 rw 0 0 tmpfs /dev/shm tmpfs rw 0 0 /dev/sda6 /mnt/sda6 ext3 rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_miscrw 0 0 .host:/ /mnt/hgfs vmhgfs rw,ttl=1 0 0 none /proc/fs/vmblock/mountPoint vmblock rw0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefsrw 0 0 /dev/sda7 /mnt/sda7 ext3 rw 0 0 /dev/hdc /media/cdrom iso9660 ro 0 0 /dev/sdb1 /media/flash vfatrw,iocharset=cp950 0 0
举例5:系统默认挂载信息会记录在/etc/fstab中
[root@localhost~]# cat /etc/fstab LABEL=/ / ext3 defaults 1 1 LABEL=/home /home ext3 defaults 1 2 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=SWAP-sda5 swap swap defaults 0 0 /dev/sda6 /mnt/sda6 ext3 defaults 1 2
语法:umount[-fn] 设备文件名或者挂载点
选项和参数:
-f:强制卸载
-n:不更新/etc/mtab文件
举例:
[root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda2 9920624 4329164 5079392 47% / /dev/sda3 4956316 141272 4559212 4% /home /dev/sda1 101086 11726 84141 13% /boot tmpfs 1037452 0 1037452 0% /dev/shm /dev/sda6 1976312 42072 1833836 3% /mnt/sda6 .host:/ 80148252 59231444 20916808 74% /mnt/hgfs /dev/sda7 194450 9016 175396 5% /mnt/sda7 /dev/hdc 1651852 1651852 0 100% /media/cdrom /dev/sdb1 3977678 1385740 2591938 35% /media/PENDRIVE /dev/sdb1 3977678 1385740 2591938 35% /media/flash [root@localhost ~]# umount /media/flash [root@localhost ~]# umount /media/cdrom [root@localhost ~]# umount /dev/sda7 [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda2 9920624 4329164 5079392 47% / /dev/sda3 4956316 141272 4559212 4% /home /dev/sda1 101086 11726 84141 13% /boot tmpfs 1037452 0 1037452 0% /dev/shm /dev/sda6 1976312 42072 1833836 3% /mnt/sda6 .host:/ 80148252 59231444 20916808 74% /mnt/hgfs /dev/sdb1 3977678 1385740 2591938 35% /media/PENDRIVE
磁盘的挂载可以通过文件系统的卷标(Label)来进行,但是要保证这个值的唯一性
我们可以通过mke2fs进行磁盘格式化来指定这个值,也可以通过elabel或tune2fs来修改这个值
语法:e2label设备名称 新的Label名称
举例:修改sda7Label名称
[root@localhost ~]# e2label /dev/sda7"tkflabel" [root@localhost ~]# df /dev/sda7 文件系统 1K-块 已用 可用 已用% 挂载点 - 1037452 156 1037296 1% /dev [root@localhost ~]# dumpe2fs /dev/sda7 dumpe2fs 1.39 (29-May-2006) Filesystemvolume name: tkflabel
举例2:使用新Label进行挂载
[root@localhost ~]# mount -L"tkflabel" /mnt/sda7 [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda2 9920624 4329164 5079392 47% / /dev/sda3 4956316 141272 4559212 4% /home /dev/sda1 101086 11726 84141 13% /boot tmpfs 1037452 0 1037452 0% /dev/shm /dev/sda6 1976312 42072 1833836 3% /mnt/sda6 .host:/ 80148252 59231444 20916808 74% /mnt/hgfs /dev/sdb1 3977678 1385740 2591938 35% /media/PENDRIVE /dev/sda7 194450 9016 175396 5% /mnt/sda7
语法:tune2fs[-jlL] 设备名称
选项与语法:
-l:类似dump2fs –h 将superblock信息读取出来
-j:将EXT2文件系统转换为ext3
-L:类似e2labe功能
举例:
[root@localhost ~]# tune2fs -L"newlabel" /dev/sda7 tune2fs 1.39 (29-May-2006) [root@localhost ~]# tune2fs -l /dev/sda7 tune2fs 1.39 (29-May-2006) Filesystemvolume name: newlabel
前面说到过开机挂载主要是从/etc/fstab 文件中读取挂载信息进行挂载,话句话说主要进行更改这个文件,添加新的挂载信息就可以进行自动开机加载
[root@www ~]# cat /etc/fstab # Device Mount point filesystem parameters dump fsck LABEL=/1 / ext3 defaults 1 1 LABEL=/home /home ext3 defaults 1 2 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=SWAP-hdc5 swap swap defaults 0 0
Device:设备卷标(Label)
Mountpoint :挂载点
Filesystem:文件系统类型
Parameters:文件系统参数(-o后面的参数)
Dump:是否被dump备份
Fsck:是否以FSCK检验扇区
启 动的过程中,系统默认会以 fsck 检验我们的 filesystem 是否完整 (clean)。 不过,某些 filesystem 是不需要检验的,例如内存置换空间 (swap) ,或者是特殊文件系统例如 /proc 与 /sys 等等。所以,在这个字段中,我们可以配置是否要以 fsck 检验该 filesystem。 0 是不要检验, 1 表示最早检验(一般只有根目录会配置为 1), 2 也是要检验,不过 1 会比较早被检验啦! 一般来说,根目录配置为 1 ,其他的要检验的 filesystem 都配置为 2 就好了。
假如我们分区不够合理,没有足够的空间在创建一个分区,那么我们可以在已有分区上创建一个大文件,并将这个大文件作为单独的文件系统进行挂载。这就用到了特殊文件挂载
作法:
1. 创建大文件
2. 格式化
3. 挂载
举例1:创建大文件
[root@bogon ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 9.5G 4.1G 5.0G 45% / /dev/sda3 4.8G 138M 4.4G 4% /home /dev/sda1 99M 12M 83M 13% /boot tmpfs 1014M 0 1014M 0% /dev/shm .host:/ 49G 6.5G 43G 14% /mnt/hgfs [root@bogon ~]# dd if=/dev/zero of=/home/newdev bs=1M count=512 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 6.97647 seconds, 77.0 MB/s [root@bogon ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 9.5G 4.1G 5.0G 45% / /dev/sda3 4.8G 651M 3.9G 15% /home /dev/sda1 99M 12M 83M 13% /boot tmpfs 1014M 0 1014M 0% /dev/shm .host:/ 49G 6.5G 43G 14% /mnt/hgfs [root@bogon ~]# ll /home/newdev -rw-r--r-- 1 root root 536870912 02-27 20:14 /home/newdev
以上发现home文件系统使用量增大了512M
举例2:格式化
[root@bogon ~]# mkfs -t ext3 /home/newdev mke2fs 1.39 (29-May-2006) /home/newdev is not a block special device. Proceed anyway? (y,n) y Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) ……
举例3:挂载
[root@bogon ~]# mount -o loop /home/newdev /media/cdrom [root@bogon ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 9.5G 4.1G 5.0G 45% / /dev/sda3 4.8G 651M 3.9G 15% /home /dev/sda1 99M 12M 83M 13% /boot tmpfs 1014M 0 1014M 0% /dev/shm .host:/ 49G 6.6G 43G 14% /mnt/hgfs /home/newdev 496M 19M 452M 4% /media/cdrom