一个计算机技术爱好者与学习者

0%

好好学Linux:Linux挂载文件系统

1. mount/umount简介

mount - mount a filesystem
umount - unmount file systems
All files accessible in a Unix system are arranged in one big tree, the file hierarchy, rooted at /. These files can be spread out over several devices. The mount command serves to attach the filesystem found on some device to the big file tree. Conversely, the umount command will detach it again.

参考文档:

2. 格式化并挂载磁盘

2.1. 格式化磁盘

1、查看磁盘

1
fdisk -l

2、磁盘分区(可选)

1
fdisk /dev/sdb

按照提示,依次输入p,n,回车(Partition number),回车(First sector),回车(Last sector),w。

3、磁盘格式化

1
2
3
# mkfs -t ext4 /dev/sdb
mkfs.ext4 /dev/sdb1
blkid /dev/sdb1

2.2. parted格式化磁盘

fdisk只支持MBR分区,MBR分区表最大支撑2T的磁盘,所以无法划分大于2T的分区。
而parted工具可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区。
参考文档Linux parted 分区命令详解

1、查看磁盘

1
fdisk -l

2、磁盘分区

1
parted /dev/sdb

按照提示,依次输入mklabel,mkpart,print,quit。

交互示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
GNU Parted 3.3
使用 /dev/sdb
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
(parted) help
align-check 类型 N 检查分区 N 是否为 (最小=min|最佳=opt) 对齐类型
help [COMMAND] 打印通用求助信息,或 COMMAND 的帮助
mklabel,mktable LABEL-TYPE 创建新的磁盘卷标 (分区表)
mkpart 分区类型 [文件系统类型] 起始点 结束点 创建一个分区
name 编号 名称 将指定“编号”的分区命名为“名称”
print [devices|free|list,all|数字] 显示分区表、可用设备、剩余空间、所有分区或特殊分区
quit 退出程序
rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区
resizepart NUMBER END 改变 NUMBER 的大小
rm NUMBER 删除编号为 NUMBER 的分区
select 设备 选择要编辑的设备
disk_set 旗标 状态 变更已选设备上的旗标
disk_toggle [旗标] 切换已选设备上的旗标状态
set 编号 旗标 状态 改变指定“编号”分区的旗标
toggle [编号 [旗标]] 切换“编号”分区上的“旗标”状态
unit 单位 设置缺省的“单位”
version 显示目前 GNU Parted 的版本与版权信息
(parted) mklabel
新的磁盘卷标类型? gpt
(parted) mkpart
分区名称? []? sdb1
文件系统类型? [ext2]? ext4
起始点? 0%
结束点? 100%
警告: 所产生的分区没有适当为获得最佳性能而对齐:34s % 2048s != 0s
忽略/Ignore/放弃/Cancel? Ignore
(parted) print
型号:AVAGO INSPUR (scsi)
磁盘 /dev/sdb: 20.0TB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:

编号 起始点 结束点 大小 文件系统 名称 标志
1 17.4kB 20.0TB 20.0TB ext4 sdb1

(parted) quit

3、磁盘格式化

1
2
3
# mkfs -t ext4 /dev/sdb
mkfs.ext4 /dev/sdb1
blkid /dev/sdb1

2.3. 重新分区

fdisk -l如果出现提示:分区 1 未起始于物理扇区边界。

或者mkfs.ext4 /dev/sdb1出现提示:/dev/sdb1 未对齐,偏移了 244736 个字节。这可能导致性能明显下降,建议重新进行分区。

此时请重新进行分区,否则磁盘性能会很差。
fdisk指令:

1
命令(输入 m 获取帮助): d

parted指令:

1
(parted) rm 1

2.4. 挂载磁盘

1、创建挂载目录

1
mkdir /sdb

2、添加自动挂载,编辑 /etc/fstab ,添加

1
2
# /dev/sdb1 /sdb ext4 defaults 0 0
<blkid> /sdb ext4 defaults 0 0

3、执行挂载(根据/etc/fstab的配置)

1
2
3
# mount /dev/sdb1 /sdb
mount -a
df -h

3. 挂载nfs

1、查看nfs-server的挂载点

1
showmount -e 192.168.56.200

2、执行挂载

1
mount -t nfs 192.168.56.200:/opt/qemu /opt/qemu

如果mount卡住,大概率是因为nfs-server的问题,建议检查一下挂载点是否正常。

3、写入到 /etc/fstab

1
192.168.56.200:/opt/qemu /opt/qemu nfs defaults 0 0

4. 卸载挂载

1
umount /opt/qemu

5. df -h卡住问题

5.1. 问题描述

df -h执行后,卡住了

5.2. 解决办法

一般是由于 mount 目录所在服务器关机了,或者目录不存在了,造成 df -h 卡住一直不动

排查办法:

1
2
3
4
5
6
7
8
# 查看具体有哪些挂载
mount

# 查看具体卡在哪里了
strace df -h

# 查看有哪些进程使用这个挂载
fuser -cu /opt/qemu

解决办法:

1
2
3
# 卸载无效挂载
umount -l /opt/qemu
umount -lf /opt/qemu
  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-linux-mount/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~