装载和卸载磁盘
创建分区后需要格式化,格式化后必须装载磁盘。
格式化的磁盘正好是块设备文件,类型为b。
在装载分区之前,必须创建一个显示为目录的装载点。 如果将一个分区装载到此装载点(目录)下,则在将数据写入该目录时,它将写入该分区。 需要注意!
在装载分区之前,装载点(目录)下必须是空目录。 实际上,即使目录不为空,装载的分区的使用也不会影响。 但是,一旦装载,就看不到该目录下的以前的东西了。 仅在卸载分区后显示。
命令:装载
不要在不同的挂载点上重新挂载单个文件系统
不要在一个目录中重新挂载多个文件系统
作为装载点的目录理论上应该都是空目录
语法:装载
[-t]
vfstype]
[-o]
选项]设备
dir
1.-t
VFS类型指定文件系统的类型。 通常不需要指定。
2.-o
options主要用于描述如何连接设备或文件。
3 .设备
要装载的设备。
4 .将dir设备装载到系统(mount
重点)。
可选:
-遵循-a:配置式/etc/fstab
的数据将装载所有未装载的磁盘
-l:如果简单地输入mount,则表示当前正在接收消息,并带有-l
可以添加标签名称
可以将文件系统类型添加到-t:中,以指定要装载的类型
默认情况下,-n:将实际装载的情况实时写入/etc/mtab,并在其他系统上运行,但在某些情况下,它可能不有意写入,以避免出现问题。 在这种情况下,添加-n选项。
-L:系统除了使用设备文件名装载外,还可以使用文件系统的卷标名称装载
-o:后面可以连接装载时添加的参数。
常用的选项是-a、-t和-o。
如果不指定选项直接运行mount命令,将显示以下消息:
[root@qiangzi ~]# mount
/dev/sda3on/typeext4(rw ) )。
处理/保护类型proc (rw )。
sysfson/systypesysfs(rw ) )
devpts on /dev/pts type devpts
(rw,gid=5,mode=620 )
TMPFSon/dev/SHMtypetmpfs(rw ) )。
/dev/sda1on/boottypeext4(rw ) )
none on/proc/sys/fs/nxdzxcfmt _ misc type
是nxdzxcfmt_misc(rw )
mount命令显示装载到当前系统上的所有分区以及分区文件系统的类型、装载点和一些选项等信息。 因此,如果想知道某个分区的文件系统类型,可以用该命令直接显示。
示例:
创建空目录,并在目录中创建空文档。
[root@qiangzi ~]# mkdir /newdir
[root@qiangzi ~]# touch
/newdir/newfile.txt
[根@钱zi~] # ls
/newdir/newfile.txt
/newdir/newfile.txt
然后将格式化后的/dev/sdb5
在/newdir上。
mount: wrong fs type,bad option,bad
superblock on /dev/sdb5,
缺少代码页or helper program,or
other error
In some cases useful info is found in
系统日志树
dmesg | tail or so
无法完成装载。 根据上述装载错误提示:
[root@qiangzi ~]# dmesg |tail
Adding 2097144k swap on /dev/sda2。
priority :-1扩展:1 across 33602097144 k
net :注册代理colfamily 10
o :分布式专用扩展版
IP6_Tables:(c ) 2000-2006 Netfilter Core
团队合作
nf _ conntrack版本0.5.0 (16100
buckets,64400 max )
ip_tables
: (C) 2000-2006 Netfilter CoreTeam
eth0: link up
eth0: no IPv6 routers present
EXT4-fs (sdb5): bad block size
8192
EXT4-fs (sdb5): bad block size
8192
可以看到,我的/dev/sdb5指定的块值8192不合法,所以只能重新格式化磁盘。
[root@qiangzi ~]# mke2fs -t ext4 -L TEST
/dev/sdb5
使用默认块值即可。继续挂载sdb5。
[root@qiangzi ~]# mount /dev/sdb5
/newdir/
[root@qiangzi ~]# ls /newdir/
lost+found
[root@qiangzi ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used
Avail Use% Mounted on
/dev/sda3 7.8G 2.0G 5.5G 27% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 97M 26M 67M 29% boot
/dev/sdb5 989M 18M 921M 2% /newdir
把/dev/sdb5挂载到/newdir后,原来在/neddir下的newfile.txt被覆盖了,通过df
-h可以看到刚才挂载的分区,我们也可以使用LABEL的方式挂载分区:
[root@qiangzi ~]# umount /newdir/
[root@qiangzi ~]# df -h
Filesystem Size Used Avail Use% Mounted
on
/dev/sda3 7.8G 2.0G 5.5G 27% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 97M 26M 67M 29% /boot
[root@qiangzi ~]# mount LABEL=TEST
/newdir
[root@qiangzi ~]# df -h
Filesystem Size Used Avail Use% Mounted
on
/dev/sda3 7.8G 2.0G 5.5G 27% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 97M 26M 67M 29% /boot
/dev/sdb5 989M 18M 921M 2% /newdir
日常运维工作中会遇到这样的情况,一台服务器上新装了两块磁盘,磁盘a(在服务器上显示为sdc)和磁盘b(在服务器上显示为sdd)。又一次把这两块磁盘都拔掉了,然后再重新插上,重启机器,结果磁盘编号调换了。a变成了sdd,b变化才能了sdc(这是应为把磁盘差错了卡槽)。
通过上面的学习,挂载磁盘是通过/dev/hdb1这样的分区名字来挂载的,如果先前加入到了/etc/fstab中,结果系统启动后则会挂载错分区。
如何避免这种情况发生?这就要用到UUID,可以通过blkid命令获取各分区的UUID:
blkid命令
获取文件系统类型、UUID
在Linux下可以使用blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。
[root@qiangzi ~]# blkid
/dev/sda1:
UUID="37d8fe31-1cd8-4179-9aaa-1ee58284891d" TYPE="ext4"
/dev/sda2:
UUID="1ac357d6-a735-468f-ba6c-1eabad6aa0f2" TYPE="swap"
/dev/sda3:
UUID="51a8587e-7445-4ea8-85ef-bad6a1336748" TYPE="ext4"
/dev/sdb5: LABEL="TEST"
UUID="b45f5443-75e4-4994-8743-4ba7fb25311e" TYPE="ext4"
这样可以获得全部磁盘分区的UUID,如果格式化的时候指定了LABLE则该命令也会显示LABEL值,甚至连文件系统类型也会显示。当然这个命令后面也可以指定哪个分区:
[root@qiangzi ~]# blkid /dev/sdb5
/dev/sdb5: LABEL="TEST"
UUID="b45f5443-75e4-4994-8743-4ba7fb25311e" TYPE="ext4"
获得UUID之后的使用方法:
[root@qiangzi ~]# umount /newdir
[root@qiangzi ~]# mount
UUID="b45f5443-75e4-4994-8743-4ba7fb25311e" /newdir
[root@qiangzi ~]# df -h
Filesystem Size Used Avail Use% Mounted
on
/dev/sda3 7.8G 2.0G 5.5G 27% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 97M 26M 67M 29% /boot
/dev/sdb5 989M 18M 921M 2% /newdir
也可以把下面这行写到/etc/fstab中
UUID=b45f5443-75e4-4994-8743-4ba7fb25311e /newdir ext4 defa ults
00
如果想让某个分区开机后就自动挂载,有两个办法可以实现:在/etc/fstab中添加一行。如上例中那行;把挂载命令写到/etc/re.d/rc.local文件中去,我会经常把想要开机启动的命令加到这个文件中。系统启动后会执行这个文件中的命令,所以只要想开机后运行什么命令统统写入到这个文件下面,直接放到最后面即可,把挂载的命令放在文件最后一行:
[root@qiangzi ~]# cat
/etc/rc.d/rc.local
#!/nxdzxc/sh
#
# This script will be executed *after*
all the other init scripts.
# You can put your own initialization
stuff in here if you don't
# want to do the full Sys V style init
stuff.
touch /var/lock/subsys/local
[root@qiangzi ~]# vi
/etc/rc.d/rc.local
#!/nxdzxc/sh
#
# This script will be executed *after*
all the other init scripts.
# You can put your own initialization
stuff in here if you don't
# want to do the full Sys V style init
stuff.
touch /var/lock/subsys/local
mount
UUID="b45f5443-75e4-4994-8743-4ba7fb25311e" /newdir
~
按esc退出,输入:wq,保存退出即可
以上两种方法任选其一。
建议挂载磁盘分区的时候尽量使用UUID或者LABEL这两种方法。
命令:umount
选项:-l,(非常有用,遇到不能卸载的情况用-l)
在上面的例子中,多次用到这个命令。
umount后面可以跟挂载点,也可以跟分区名(/dev/hdb1).
但是不可以跟LABEL和UUID。
[root@qiangzi ~]# umount /dev/sdb5
[root@qiangzi ~]# mount
UUID="b45f5443-75e4-4994-8743-4ba7fb25311e" /newdir
[root@qiangzi ~]# umount /newdir
[root@qiangzi ~]# mount
UUID="b45f5443-75e4-4994-8743-4ba7fb25311e" /newdir
[root@qiangzi ~]# df -h
Filesystem Size Used Avail Use% Mounted
on
/dev/sda3 7.8G 2.0G 5.5G 27% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 97M 26M 67M 29% /boot