Linux平台及应用
潘小玲 郑国华 丁敏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

创建和挂装文件系统

发布时间:2020-05-17 18:58   发布人:潘小玲   浏览次数:530

1、创建和挂装文件系统

1.1创建文件系统

创建文件系统命令的格式如下:

# mkfs.ext4  <设备名>

# mlkfs.xfs  <设备名>

例1、在系统第二块SATA接口的硬盘第5个分区上创建ext4类型的文件系统。

# mkfs.ex14 /dew/sdb5

例2、对data卷组的home逻辑卷创建ext4类型的文件系统。

# mkfs.ext4 /dev/data/home

例3、对data卷组的www逻辑卷创建xfs类型的文件系统。

# mkfs.xfs /dev/data/www

也可以使用带-t <fstype>选项的mkfs命令创建各种类型的文件系统,例如:

//在系统第二块SATA接口的硬盘第1个分区上创建ext3类型的文件系统

# mkfs -t ext3 /dev/sdbl

//在系统第二块SATA接口的硬盘第5个分区上创建FAT32类型的文件系统

# mkfs -t vfat /dev/sdb5

1.2使用mount命令挂装文件系统

在磁盘分区或逻辑卷上创建了文件系统后,还需要把新建立的文件系统挂装到系统上才能使用。挂装是Linux文件系统中的概念,将所有的文件系统挂装到统的目录树中。使用mount命令可以灵活地挂装系统可识别的所有文件系统。mount 的命令格式如下。

Ø  格式1: #mount [-t<文件系统类型>] [-o <挂装选项>] <设备名> <挂装点>

Ø  格式2: #mount [-o <挂装选项>] <设备名>或<挂装点>

Ø  格式3: #mount -a [-t<文件系统类型>] [-o <挂装选项>]

1)格式1:用于挂装/et/fstab中未列出的文件系统。

Ø  使用-t选项可以指定文件系统类型。

Ø  若-t选项省略,mount命令将依次试探/proc/filesystems中不包含nodev的行。

Ø  必须同时指定<设备名>和<挂装点>。

2)格式2:用于挂装/et/fstab中已列出的文件系统。

Ø  选择使用<设备名>或<挂装点>之一即可。

Ø  若-o省略,则使用et:/fstab 中该文件系统的挂装选项。

3)格式3:用于挂装/etc/fstab 中所有不包含noauto (非自动挂装)挂装选项的文件系统。

Ø  -t: 若指定此参数,则只挂装/etc/fstab中指定类型的文件系统。

Ø  -0:用于指定挂装/et/fstab中包含指定挂装选项的文件系统。

Ø  若同时指定-t和-o,则为“或者”的关系。

注意:

1.挂装点就是文件系统中的一个目录,必须把文件系统挂装在目录树中的某

个目录中。

2.挂装点目录在实施挂装操作之前必须存在,若其不存在则应该使用mkdir

命令创建。

3.通常挂装点目录必须是空的,否则目录中原有的文件将被系统隐藏。

4.设备名也可以通过文件系统的LABEL或UUID来指定,即设备名可以用

LABEL=<label> (-L <label>)或UUID-<uuid> (-U <uuid> )替换。

 

下面是几个使用mount命令的例子。

例l:将/dev/sdb5 上的ext4文件系统挂装到/backup.

# mkdir /backup

#mount -t ext4  /dev/sdb5 /backup

也可以通过UUID来指定设备。

# blkid /dev/sdb5

/dev/sdb5: UUID="645ecfe0-be72-494f-8771-eb550e9a614b" TYPE- "ext4"

#mount -t ext4 _U "645ecfe0-be72 494f-8771-eb550e9a614b" /backup

例2:将文件系统类型为ext4 的逻辑卷/dev/datahome 挂装到/home.

#mount /dev/data/home  /home

也可以通过UUID来指定设备。

# bkid /dev/data/home

/dev/data/home: UUID-"17bc54ae f2ba 4296 acl6-5f39c692bbd" TYPE "ext4"

#mount  -U "17bc54ae -f2ba 4296-ac16 5f39c6926bbd" /home

例3:将文件系统类型为xfs的逻辑卷/dev/data/www 挂装到/srv/www.

#mkdir /srv/www

# mount /dev/data/www /srv/www

也可以通过UUID来指定设备。

# blkid /dev/data/www

/devdata/www: UUID "5b62d725-08e1-47d9 8389 d87842e0a916" TYPE- "xfs"

#mount -U "5b62d725-08e1-47d9 8389 d87842e0a916" /srv/www

例4:将光盘ISO文件挂载到/media。

# mount  -t  iso9660 -0 loop CentOS 7-x86 64-Minimal-1503-01.iso0  /media

例5:将/devlsddl上的NTFS类型的文件系统以读写方式挂装到/mnt/win.

#yum -y  install ntfs-3g

# mkdir /mn/win

# moun.tfs-3g /dev/sdd1 /mnt/win

例6:显示当前已经挂装的文件系统。

$ mount    #或findmnt

1.3使用umount命令卸载文件系统

文件系统可以被挂装,也可以被卸装。卸装文件系统的命令是umount, 该命令可以把文件系统从Linux系统中的挂装点分离。要卸装一个文件系统,可以指定要卸装的文件系统的目录名(挂装点)或设备名。umount 命令的格式如下。

# umount <设 备名或挂装点>

例如:

# umount  /dev/sdb5

# umount  /srv/www

注意:

如果一个文件系统处于busy状态,则不能卸装该文件系统。如下情况将导致

文件系统处于busy 状态:

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

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

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

最典型的错误是在挂装点目录下实施卸装操作,此时文件系统处于busy状态。

 

1.4 fuser 命令

fuser命令可以根据文件( 目录、设备)查找使用它的进程,同时也提供了杀死这些进程的方法。fuser 命令的详细用法可参考其man手册。下面仅介绍当文件系统处于busy状态时如何卸装文件系统的步骤。

1) 查看挂接点有哪些进程需要杀掉。

# fuser  -cu  /mount point

2)杀死这些进程(向其发送([SIGKILL, 9]信号)。

# fuser  -ck  /mount point

3)查看是否还有进程在访问挂接点。

#fiser c /mount point

4)卸载挂接点上的设备。

# umount /mount point

5.在系统启动时自动挂装文件系统

使用mount命令手动挂装的文件系统在关机时会被自动卸装,但系统再次启动后不会被自动挂装。要在启动时自动挂装文件系统必须修改系统挂装表——配置文件/etc/fstab。 系统启动所要挂装的文件系统、挂装点、文件系统类型等都记录在/etc/fstab文件里,例如:

#<file system>       <mount point> <type><options><dump><pass>

/dev/mapper/centos-root     xfs   /      xfs    defaults   0      0

UUID=-lelabb88 19c5 49-acc-a942cb37b7ld /boot xfs defaults   0      0

/devlmaper/centos-swap    swap      swap   defaults   0      0

/etc/fstab文件每一行书写一个文件系统的挂装情况,以#开头的行为注释行。文件中每一列的说明如下表所示。

fstab 文件栏位说明

栏位

说明

file   system

要挂装的设备,可以使用设备名,也可以通过UUID=<uuid>或LABEL=<label>来指定

mount   point

挂装点目录

type

挂装的文件系统类型

options

挂装选项。挂装设备时可以设置多选项,不同选项间用逗号隔开

dump

使用dump命令备份文件系统的频率,空白或者值为0时,系统认为不需要备份

pass

开机时fsck向令会自动检查文件系统,pass规定了检查的顺序。挂装到分区的文件系统。此栏位应是1,其余是2,0表示不需要检查

例如,要在系统启动过程中将分区/dev/sdb5 上的ext4类型的文件系统挂装到/backup目录,将逻辑卷/dev/data/www上的xfs类型的文件系统挂装到/srv/www目录,将逻辑卷/dev/datahome 上的ext4类型的文件系统挂装到/home目录,可以在/etc/fstab文件中添加:

/dev/data/www    /sr/www    xfs    defaults   0   0

/dev/data/home   /home       ext4   defaults   0   1

/dev/sdb5        /backup      ext4   defaults   0   2

或者使用UUID指定设备。

UUID-5b62d725-08e1-47d9-8389-d87842e0a916  /srv/www  xfs  defaults 0  0

UUID-17bc54ac-f2ba 4296 acl6-5139c6926bbd   /home     ext4  defaults 0  1

UUID-645ecfe0-be72- 494f-8771-cb550e9a614b  /backup    ext4  defaults 0  2

修改/etc/fstab文件后,执行如下命令使其在当前生效。

# mount  -a

注意:

若系统在安装过程中没有分配单独的挂载到home的分区或逻辑卷,那么

/home目录下很可能已包含用户数据,将单独的分区或逻辑卷挂载到/home后,原来/home目录的内容将被屏蔽,为此应先执行如下的命令将原来/home目录下的内容同步到新的分区或逻辑卷,为了节省空间还可以删除原来/home目录下的内容。

# umount  /home

# mount  /dev/data/home  /mnt

# rsync -avH  /home/ /mnt/

# m -rf /home/*

# umount  /mnt

# mount /dev/data/home  /home