文章目录
Linux 磁盘
拿到一块硬盘一般分为四步进行操作
- 分区
- 格式化
- 挂载
- 存放数据
1. 分区介绍
计算机中存放信息的主要存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成一块一块的硬盘区域就是磁盘的分区。
在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区。如果说有划分多个主分区,那么启动时则会去查找带有启动标识的分区
- 主分区:是能够安装操作系统,能够进行计算机启动的分区,这样的分区可以直接格式化,然后安装系统,直接存放文件。
- 扩展分区无法直接使用,必须在扩展分区中再次划分获取驱动器才可以格式化,格式化之后存储数据。
2. fdisk 分区
Linux fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表
语法:
fdisk [命令选项] [参数]
必要命令选项:
-l 列出所有分区表
参数:
可以是磁盘名称,例:sda sdb …
3. fdisk 分区练习
需求:将新添加的 sdc 磁盘分出一个主分区,一个扩展分区,两个逻辑分区,一个交换分区
# 查看当前磁盘信息
fdisk -l
- 对
/dev/sdc
进行分区
[root@node01 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x8d8ba4f4 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):l # 输入 l 查看分区类型
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
命令(输入 m 获取帮助):
参数信息参考:
参数 | 说明 |
---|---|
m | 显示菜单和帮助信息 |
a | 活动分区标记/引导分区 |
d | 删除分区 |
l | 显示分区类型 |
n | 新建分区 |
p | 显示分区信息 |
q | 退出不保存 |
t | 设置分区号 |
v | 进行分区检查 |
w | 保存修改 |
x | 扩展应用,高级功能 |
命令(输入 m 获取帮助):p # p 查看分区信息
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n # n 新建分区,注意:主分区和扩展分区最大不能超过四个
Partition type:
p primary (0 primary, 0 extended, 4 free) # p 主分区;0 primary, 0 extended, 4 free 0个主分区,0个扩展分区,4个剩余
e extended # e 扩展分区
Select (default p): p # 新建一个主分区
分区号 (1-4,默认 1):1 # 分区号默认为 1 ,也可以自定义,但是最多只能由 4 个,所以一般按顺序来便于后期理解
起始 扇区 (2048-10485759,默认为 2048): # 起始扇区,默认即可
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+500M # 自定义第一个分区大小,如使用默认则是整个磁盘大小
分区 1 已设置为 Linux 类型,大小设为 500 MiB
命令(输入 m 获取帮助):p # 查看分区信息
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux
命令(输入 m 获取帮助):n # 新建一个分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e # 新建一个扩展分区
分区号 (2-4,默认 2): # 使用默认分区号即可,也可以自定义
起始 扇区 (1026048-10485759,默认为 1026048): # 起始扇区位置,默认即可
将使用默认值 1026048
Last 扇区, +扇区 or +size{K,M,G} (1026048-10485759,默认为 10485759): # 结束扇区位置,如果是剩余的都分为扩展分区,使用默认即可,如不想将剩余的都分为扩展分区,也可以自定义扩展分区大小
将使用默认值 10485759
分区 2 已设置为 Extended 类型,大小设为 4.5 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux
/dev/sdc2 1026048 10485759 4729856 5 Extended
命令(输入 m 获取帮助):
命令(输入 m 获取帮助):n # 新建分区
Partition type:
p primary (1 primary, 1 extended, 2 free) # 新建主分区
l logical (numbered from 5) # 新建逻辑驱动器
Select (default p): p # 新建主分区
分区号 (3,4,默认 3): # 使用默认分区号
No free sectors available # 提示没有剩余空间了,因为前面已经将剩余的空间都分给扩展分区了,所以这里只能新建逻辑驱动器
命令(输入 m 获取帮助):n # 新建分区
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l # 新建一个逻辑驱动器
添加逻辑分区 5 # 默认分区号
起始 扇区 (1028096-10485759,默认为 1028096): # 使用默认起始位置
将使用默认值 1028096
Last 扇区, +扇区 or +size{K,M,G} (1028096-10485759,默认为 10485759):+1G # 自定义逻辑启动器大小
分区 5 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):p # 查看分区信息
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux
/dev/sdc2 1026048 10485759 4729856 5 Extended
/dev/sdc5 1028096 3125247 1048576 83 Linux
命令(输入 m 获取帮助):w # w 保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
# 查看分区信息
[root@node01 ~]# fdisk -l /dev/sdc
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux
/dev/sdc2 1026048 10485759 4729856 5 Extended
/dev/sdc5 1028096 3125247 1048576 83 Linux
以上只分了一个 主分区 一个 扩展分区 一个 逻辑驱动器 ,下面在分一个 逻辑驱动器 一个 交换分区
- 增加一个逻辑驱动器
# 在增加一个逻辑驱动器,理论上是逻辑驱动器可以分无限个,不过在Linux下好像是可以分16个
[root@node01 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux
/dev/sdc2 1026048 10485759 4729856 5 Extended
/dev/sdc5 1028096 3125247 1048576 83 Linux
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (3127296-10485759,默认为 3127296):
将使用默认值 3127296
Last 扇区, +扇区 or +size{K,M,G} (3127296-10485759,默认为 10485759):+1G
分区 6 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux
/dev/sdc2 1026048 10485759 4729856 5 Extended
/dev/sdc5 1028096 3125247 1048576 83 Linux
/dev/sdc6 3127296 5224447 1048576 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
- 增加一个交换分区
# 新建一个交换分区
[root@node01 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p # 查看当前分区信息
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux
/dev/sdc2 1026048 10485759 4729856 5 Extended
/dev/sdc5 1028096 3125247 1048576 83 Linux
/dev/sdc6 3127296 5224447 1048576 83 Linux
命令(输入 m 获取帮助):n # 新建一个分区
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l # 新建一个逻辑驱动器
添加逻辑分区 7 # 使用默认分区号
起始 扇区 (5226496-10485759,默认为 5226496): # 默认起始位置
将使用默认值 5226496
Last 扇区, +扇区 or +size{K,M,G} (5226496-10485759,默认为 10485759):+1G # 自定义大小
分区 7 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):t # t 修改分区类型
分区号 (1,2,5-7,默认 7):7 # 选择需要被修改的分区号
Hex 代码(输入 L 列出所有代码):L # 查看所有分区类型
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):82 # 选择交换分区 ID
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):p # 查看分区信息
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux
/dev/sdc2 1026048 10485759 4729856 5 Extended
/dev/sdc5 1028096 3125247 1048576 83 Linux
/dev/sdc6 3127296 5224447 1048576 83 Linux
/dev/sdc7 5226496 7323647 1048576 82 Linux swap / Solaris
命令(输入 m 获取帮助):w # 保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
4. 格式化
格式化(format)是指对磁盘或者磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有磁盘或者分区中的所有文件被清除。
格式化通常分为低级格式化和高级格式化,如果没有特别指明,对硬盘的格式化通常是指高级格式化。低级格式化现在基本不会使用,或者个人在使用时使用低级格式化对硬盘进行坏道修复使用。
4.1 文件系统
文件系统:负责管理和存储数据的系统(数据是以什么方式存在硬盘,又是以什么方式读出来的,这就是文件系统)
文件系统类型:fat ntfs ext2 ext3 ext4 xfs …
可以使用 man mount
查看有多少文件系统类型
[root@node01 ~]# man mount
# 使用 /-t 匹配查看
/-t
-t, --types vfstype
The argument following the -t is used to indicate the filesystem type. The filesystem types which are currently supported include: adfs, affs, autofs, cifs, coda, coherent, cramfs, debugfs, devpts, efs, ext, ext2, ext3, ext4, hfs, hfsplus, hpfs,
iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs, romfs, squashfs, smbfs, sysv, tmpfs, ubifs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs. Note that coherent, sysv and xenix are equivalent and that xenix and
coherent will be removed at some point in the future — use sysv instead. Since kernel version 2.1.21 the types ext and xiafs do not exist anymore. Earlier, usbfs was known as usbdevfs. Note, the real list of all supported filesystems depends on
your kernel.
The programs mount and umount support filesystem subtypes. The subtype is defined by '.subtype' suffix. For example 'fuse.sshfs'. It's recommended to use subtype notation rather than add any prefix to the mount source (for example 'sshfs#exam‐
ple.com' is depreacated).
For most types all the mount program has to do is issue a simple mount(2) system call, and no detailed knowledge of the filesystem type is required. For a few types however (like nfs, nfs4, cifs, smbfs, ncpfs) ad hoc code is necessary. The nfs,
nfs4, cifs, smbfs, and ncpfs filesystems have a separate mount program. In order to make it possible to treat all types in a uniform way, mount will execute the program /sbin/mount.TYPE (if that exists) when called with type TYPE. Since various
versions of the smbmount program have different calling conventions, /sbin/mount.smbfs may have to be a shell script that sets up the desired call.
If no -t option is given, or if the auto type is specified, mount will try to guess the desired type. Mount uses the blkid library for guessing the filesystem type; if that does not turn up anything that looks familiar, mount will try to read the
file /etc/filesystems, or, if that does not exist, /proc/filesystems. All of the filesystem types listed there will be tried, except for those that are labeled "nodev" (e.g., devpts, proc and nfs). If /etc/filesystems ends in a line with a single
* only, mount will read /proc/filesystems afterwards. All of the filesystem types will be mounted with mount option "silent".
The auto type may be useful for user-mounted floppies. Creating a file /etc/filesystems can be useful to change the probe order (e.g., to try vfat before msdos or ext3 before ext2) or if you use a kernel module autoloader.
More than one type may be specified in a comma separated list. The list of filesystem types can be prefixed with no to specify the filesystem types on which no action should be taken. (This can be meaningful with the -a option.) For example, the
command:
mount -a -t nomsdos,ext
mounts all filesystems except those of type msdos and ext.
4.2 mkfs 命令
命令语法:
mkfs [options] device
命令选项:
-t 指定文件系统类型
练习:
- 分一个主分区 格式化为 ext4
- 分一个扩展分区,并分两个逻辑驱动器 将两个逻辑驱动器格式化为 xfs ext3
[root@node01 ~]# fdisk -l /dev/sdc
磁盘 /dev/sdc:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d8ba4f4
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux # 将主分区格式化为 ext4
/dev/sdc2 1026048 10485759 4729856 5 Extended # 扩展分区,不可以格式化
/dev/sdc5 1028096 3125247 1048576 83 Linux # 逻辑驱动器,格式化为 xfs
/dev/sdc6 3127296 5224447 1048576 83 Linux # 逻辑驱动器,格式化为 ext3
/dev/sdc7 5226496 7323647 1048576 82 Linux swap / Solaris # 使用 mkswap 命令对交换分区进行格式化
- 格式化主分区
[root@node01 ~]# mkfs -t ext4 /dev/sdc1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
- 格式化
sdc5
逻辑驱动器
[root@node01 ~]# mkfs -t xfs /dev/sdc5
meta-data=/dev/sdc5 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
- 格式化
sdc6
逻辑驱动器
[root@node01 ~]# mkfs -t ext3 /dev/sdc6
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
- 格式化
sdc7
交换分区(格式化交换分区有专门的命令mkswap
)
[root@node01 ~]# mkswap /dev/sdc7
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=d6df7724-af47-4709-b60f-1bcace596e78
4.3 查看当前格式化分区信息
4.3.1 blkid
查看格式化分区
UUID
以及分区类型
[root@node01 ~]# blkid
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sdc1: UUID="306a94db-2fa3-4129-8e87-7bf90312bede" TYPE="ext4"
/dev/sdc5: UUID="ca66b783-0122-499e-a744-89723c7bac3e" TYPE="xfs"
/dev/sdc6: UUID="15541dd1-395a-4ac6-a984-803d2a1c31d7" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc7: UUID="d6df7724-af47-4709-b60f-1bcace596e78" TYPE="swap"
/dev/sda1: UUID="38f14b5c-4bb4-4c83-a7f0-2aa1c062fb7b" TYPE="xfs"
/dev/sda2: UUID="5GG10T-zBoC-fD6U-0a12-Z6av-6rU4-isOdOG" TYPE="LVM2_member"
/dev/sdb1: UUID="UDKWeA-kYkW-VVgy-Xw5l-xhSF-2u57-nH3b48" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="b6b2817b-829c-4645-b573-dc490cc21515" TYPE="xfs"
/dev/mapper/centos-swap: UUID="14d833c1-f14e-4127-b697-dac05b93fd7b" TYPE="swap"
/dev/mapper/vg_data-lv_data: UUID="004d42e0-1428-4c2a-a058-57dfdab05786" TYPE="ext4"
4.3.2 lsblk
查看分区大小及挂载信息
[root@node01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 9G 0 part
├─centos-root 253:0 0 8G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─sdb1 8:17 0 5G 0 part
└─vg_data-lv_data 253:2 0 5G 0 lvm /data
sdc 8:32 0 5G 0 disk
├─sdc1 8:33 0 500M 0 part
├─sdc2 8:34 0 1K 0 part
├─sdc5 8:37 0 1G 0 part
├─sdc6 8:38 0 1G 0 part
└─sdc7 8:39 0 1G 0 part
sr0 11:0 1 4.2G 0 rom
5. 挂载
Linux 中的所有设备必须经过挂载才可以被用户使用。
挂载的方式其实是将某个设备挂载到文件系统中的某个文件夹。(也可以理解为将文件夹和设备映射在一起,对文件夹的操作就是对设备的操作)
5.1 mount
命令语法:
mount device dir
命令选项(常用):
-a 挂载所有文件系统,参考文件 /etc/fstab
-l 显示当前挂载
-t 文件系统类型
-o 指定挂载权限(ro 只读挂载、rw 读写)
- 练习:
将 /dev/sdc1 挂载到 /opt/data1
将 /dev/sdc5 挂载到 /opt/data2
将 /dev/sdc6 挂载到 /opt/data3,并设置只读挂载
[root@node01 ~]#
[root@node01 ~]# mkdir /opt/data1
[root@node01 ~]# mkdir /opt/data2
[root@node01 ~]# mkdir /opt/data3
[root@node01 ~]# mount /dev/sdc1 /opt/data1
[root@node01 ~]# mount /dev/sdc5 /opt/data2
[root@node01 ~]# mount -o ro /dev/sdc6 /opt/data3
mount -l
查看当前挂载信息
[root@node01 ~]# mount -l
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=488804k,nr_inodes=122201,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13391)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota)
/dev/mapper/vg_data-lv_data on /data type ext4 (rw,relatime,data=ordered)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=99972k,mode=700)
/dev/sdc1 on /opt/data1 type ext4 (rw,relatime,data=ordered)
/dev/sdc5 on /opt/data2 type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sdc6 on /opt/data3 type ext3 (ro,relatime,data=ordered) # /opt/data3 的文件权限是只读,是不能进行写操作的
- 测试
/opt/data3
文件权限
[root@node01 ~]# cd /opt/data3
[root@node01 data3]# ll
总用量 16
drwx------ 2 root root 16384 8月 7 23:16 lost+found
[root@node01 data3]# touch 123
touch: 无法创建"123": 只读文件系统
5.2 umount
卸载文件系统
语法:
umount 设备挂载点|设备源
参数:
-l 懒惰卸载(即表示有人在使用的时候是不可以卸载的,使用完成之后在自动进行卸载)
示例:
- 卸载设备挂载点
[root@node01 ~]# umount /opt/data1
- 卸载设备源
[root@node01 ~]# umount /dev/sdc5
- 查看挂载信息
[root@node01 ~]# mount -l
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=488804k,nr_inodes=122201,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13391)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota)
/dev/mapper/vg_data-lv_data on /data type ext4 (rw,relatime,data=ordered)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=99972k,mode=700)
/dev/sdc6 on /opt/data3 type ext3 (rw,relatime,data=ordered)
# 此时已经没有 /dev/sdc1 和 /dev/sdc5 的挂载信息了
- 使用
umount
进行卸载时遇到的问题
# 提示忙,不能卸载
[root@node01 ~]# umount /dev/sdc6
umount: /opt/data3:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
# 使用 fuser 命令查看,如果提示没有 fuser 命令,可以使用 yum install psmisc.x86_64 -y 安装
[root@node01 ~]# fuser -mv /opt/data3
用户 进程号 权限 命令
/opt/data3: root kernel mount /opt/data3
root 1022 f.... sftp-server
# 终止当前进程,然后卸载
[root@node01 ~]# kill -9 1022
[root@node01 ~]# umount /opt/data3
5.3 自动挂载
自动挂载是将挂载信息写入到
/etc/fstab
文件中,开机就会加载这个文件将文件中的磁盘自动挂载,关机就会自动卸载
/etc/fstab
文件字段说明
设备 挂载点 文件系统 权限 备份 检测
设备、挂载点、文件系统,这里就不过多介绍了
权限:
参数 | 说明 |
---|---|
auto | 系统自动挂载,fstab 默认是这个选项 |
defaults | rw , suid , dev , exec , auto , nouser , and async(默认情况下都是用 defaults) |
noauto | 开机不自动挂载 |
nouser | 只有超级用户可以挂载 |
ro | 按只读权限挂载 |
rw | 按可读可写权限挂载 |
user | 任何用户都可以挂载 |
备份:
dump 备份设置,当其值为 1 时,将允许 dump 备份程序进行备份,设置为 0 时,忽略备份操作
检测:
fsck 磁盘检查设置,其值是一个顺序,当其值为 0 时,永远不检查,而 / 根目录分区永远为 1 ,其他分区从 2 开始,数字越小越先检查,如果两个分区的数字相同,则同时检查(一般默认情况下都设置为 0 ,不检查)
- 练习
自动挂载一下分区
- 主分区 格式化为 ext4 挂载点为 /opt/data1
- 扩展分区的两个逻辑驱动器 分别格式化为 xfs ext3 挂载点为 /opt/data2
- 交换分区 swap
#
# /etc/fstab
# Created by anaconda on Fri May 27 20:35:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=38f14b5c-4bb4-4c83-a7f0-2aa1c062fb7b /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/mapper/vg_data-lv_data /data ext4 defaults 0 0
# sdc
/dev/sdc1 /opt/data1 ext4 defaults 0 0
/dev/sdc5 /opt/data2 xfs ro 0 0
/dev/sdc6 /opt/data3 ext3 rw 0 0
/dev/sdc7 swap swap defaults 0 0
修改好 /etc/fstab
文件之后就可以使用 mount -a
进行挂载了,但是 mount -a
是不能挂载 swap
分区的
[root@node01 ~]# mount -a
[root@node01 ~]# mount -l | grep sdc
/dev/sdc1 on /opt/data1 type ext4 (rw,relatime,data=ordered)
/dev/sdc5 on /opt/data2 type xfs (ro,relatime,attr2,inode64,noquota)
/dev/sdc6 on /opt/data3 type ext3 (rw,relatime,data=ordered)
使用 swapon -a
挂载 swap
[root@node01 ~]# free -m
total used free shared buff/cache available
Mem: 976 82 565 6 328 727
Swap: 1023 0 1023
[root@node01 ~]# swapon -a
[root@node01 ~]# free -m
total used free shared buff/cache available
Mem: 976 82 564 6 328 727
Swap: 2047 0 2047