当我们分完区, 并做好文件系统格式化, 就到了最后的挂载 mount 了, 挂载完毕就可以使用磁盘设备了.
一, 什么是挂载, 卸载
任何块设备都不能直接访问, 需挂载在目录上访问
挂载: 将额外文件系统与根文件系统某现存的目录建立起关联关系, 进而使得此目录做为其它文件访问入口的行为(挂载的设备必须有文件系统)
卸载: 为解除此关联关系的过程
mount [- 选项] DEVICE(设备) MOUNT_POINT(挂载点)
(1)device : 指明要挂载的设备
1 设备文件: 例如 / dev/sda5
2 卷标:-L 'LABEL', 如 例如 -L mage
3 UUID, -U 'UUID'
(2)挂载点下原有文件在挂载完成后会被临时隐藏
若事先存在: 建议使用空目录, 进程正在使用中的设备无法被卸载
(3)/etc/mtab: 文件显示当前已挂载的所有设备(在 CentOS 7 中, 是 / proc/mounts 的软连接, 查看结果一样, CentOS 6 中, ASCII text, 查询结果和 / proc/mounts 不一样)
二, mount: 挂载常用命令选项(下面有具体的用法示例)
1, 查看挂载情况
1 findmnt 查看所有设备挂载情况(树状结构显示)
findmnt 设备 查看单个设备的挂载情况
2 mount : 查看所有设备挂载情况
3 cat /proc/mounts: 查看内核追踪到的已挂载的所有设备
2,mount 语法
mount - 选项 设备 挂载点
-t:vsftype : 指定要挂载的设备上的文件系统类型(不常用, 不加 - t 默认自带自己的文件系统类型), 有时, 系统报错提示, 没指定文件系统类型,-t 指定后, 仍然有错.(注释 1)
-r:readonly , 只读挂载, 不能进行其他操作, 和权限无关, 介质只能读, 多用于冷备份. 在 mount 查询时时显示 ro
-w:read and write, 读写挂载(defaults 默认)
-n: 隐藏挂载信息不显示 , 但在 / proc/mounts 可以查到, 卸载只能 umount /App/sdb2(挂载点)
-a: 自动挂载 / etc/fstab 文件没有挂载的设备( 定义在了 / etc/fstab 文件中, 且挂载选项中有 auto 功能, 默认中包括) , 不看已挂载过的设备, 如果在 / etc/fstab 里挂载过的设备修改了设置, 不刷新;
如果想刷新修改过已挂载的设备, mount -o remount /dev/sdX(挂载点)
-L 'LABEL': 以卷标指定挂载设备
-U 'UUID': 以 UUID 指定要挂载的设备
-B--bind: 绑定目录到另一个目录上,
例: mount -B /var/ftp/pub /App/apache /App/apache 就是显示 /var/ftp/pub 目录的东西
-o options:( 挂载文件系统的选项) , 多个选项使用逗号分隔
async(defaults),sync 异步, 同步, 内存更改时, 同时写磁盘(可以用于重要数据)
atime(defaults),noatime 是否在读访问时更新 atime
diratime(defaults),nodiratime 目录的访问时间戳
auto(defaults)/noauto 写在 / etc/fstab 当中的分区, 是否在 mount -a 时被挂载
exec(defatuls)/noexec 在该分区所挂载的目录中的脚本是否可以执行.
dev(defaults)/nodev: 是否支持在此文件系统上使用设备文件
suid(defaults)/nosuid: 是否支持 suid 和 sgid 权限
ro: 只读 rw: 读写(defaults)
nouser(defaults)/user: 是否允许普通用户挂载此设备, 默认管理员才能挂载
acl(CentOS 7)/^acl(CentOS 6 以下): 启用 / 禁用此文件系统上的 acl 功能
defaults 默认, 见以上中的(defaults)
-o remount, 选项: 重新挂载, 修改功能选项(和 / etc/fstab 选项冲突, 则覆盖, 不冲突就增加) 例: mount -o remount,ro /dev/sdb1
例: mount -r /dev/sdb1 /App/sdb1 将 / dev/sdb1 只读挂载到 / App/sdb 上
三, umount 卸载
卸载时, 若有正在进行的进程, 不能卸载
查看正在访问指定文件系统的进程:
lsof 设备或挂载点都可以
fuser -v 挂载点
终止所有在正访问指定的文件系统的进程:
fuser -km 设备或挂载点都可以
终止完所有进程就可以卸载: umount DEVICE
四,/etc/fstab 文件挂载配置文件
(1)/etc/fstab 每行定义一个要挂载的文件系统
mount -a 自动挂载 / etc/fstab 文件没有挂载的设备, 不管已挂载过的设备
如果想刷新修改过已挂载的设备, mount -o remount /dev/sdX(或挂载点)
swpon -a 自动激活 / etc/fstab 文件没有激活的交换 (扩展) 空间 , 不管已激活的扩展空间
如果想刷新修改过已激活的扩展设备, mount -o remount /dev/sdX(或挂载点)
系统重启开机时读取此文件, 可以开机自动开启文件中的设置
(2)格式(6 列):
1 要挂载的设备或伪文件系统: 设备名称, LABEL,UUID, 伪文件系统名称
2 挂载点(扩展为 swap)
3 文件系统类型(auto 寻找默认的),
普通设备挂载: ext#/xfs 等文件系统类型
交换分区 swap:swap
网络挂载地址 Linux 之间: nfs,windos 挂载: cifs
光盘 iso9660, 文件 cifs
4 挂载选项: defaults 有需要的功能可以添加, 不能为空
5 转储频率: 0: 不做备份 1: 每天转储 2: 每隔一天转储
6 开机时自检(非 0), 自检次序:(如果开机系统自检不过, 就无法正常开机)
0: 不自检 1: 最先自检, 一般为 / 2...: 数越小优先级最大
问题: 如果设备不小心被破坏, 开机自检不过, 无法正常启用, 该怎么办?
原理很简单, 只需要修复一下文件系统就好了,(如果不能修复, 可以去 / etc/fstab 中把自检改为 0)具体操作如下:
1 手动破坏设备 dd if=/dev/zero of=/dev/sdc1 bs=1 count=2048
2 开机过程, 遇到错误提示
3 进入 shell 操作, 进行修复
五, 实验: 迁移 / home 家目录
到此我们已经对磁盘管理了解的差不多了, 我们可以做个小实验, 迁移 /home , 从 / 下移到另一个磁盘, 如 / dev/sda6
1 init 1 进入单用户模式, 防止自己在迁移时, 其他用户进行操作, 导致迁移后缺失东西.
2 分区 /dev/sda6 fdisk
3 文件系统格式化 mkfs.ext4 /dev/sda6
4 挂载在临时目录上 / mnt , 把 / home 下东西 cp -a 到 / mnt 目录
5 把现有 / home 东西移走, 卸载 /mnt , 把 / dev/sda6 挂到 /home 下, 并写入 / etc/fstab, 开机自动挂载.
UUID=328a3f17-3e4e-426d-9538-c44be3e6465b /home ext4 defaults 0 2
6 reboot 或 init 5 完成 / home 搬迁
到这里关于磁盘管理的过程就全部讲完了.
来源: http://www.bubuko.com/infodetail-3280592.html