磁盘基础

硬盘结构

  • 物理结构

    盘片:硬盘有多个盘片,每盘片 2 面。

    磁头:每面一个磁头。

  • 数据结构

    扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区。 硬盘的第一个扇区,叫做引导扇区。

    磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个 圆形轨迹,这些圆形轨迹就叫做磁道。

    柱面:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组 成的一个圆柱面。

  • 储存容量

    硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数。

    可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,用 fdisk -l 查看分区信息。

硬件的接口

硬盘按数据接口不同,大致分为 ATA(IDE)SATA 以及SCSI SAS,接口速度不是实 际硬盘数据传输的速度。

  • ATA:全称 Advanced Technology Attachment,并口数据线连接主板与硬盘,抗干扰性 太差,且排线占用空间较大,不利电脑内部散热,已逐渐被 SATA 所取代。

  • SATA:全称SerialATA,抗干扰性强,支持热插拔等功能,速度快,纠错能力强。

  • SCSI:全称是Small Computer System Interface(小型机系统接口),SCSI 硬盘广为 工作站级个人电脑以及服务器所使用,资料传输时 CPU 占用率较低,转速快,支持热插拔等。

  • SAS:全称是Serial Attached SCSI是新一代的 SCSI 技术,和 SATA 硬盘相同,都是采取序 列式技术以获得更高的传输速度,可达到 6Gb/s

磁盘分区表示

MBR

  • MBR: 是主引导记录(Master Boot Record),位于硬盘第一个物理扇区处,MBR 中包含硬 盘的主引导程序和硬盘分区表。分区表有 4 个分区记录区,每个分区记录区占 16 个字节。

磁盘分区的表示

常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个,而 扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般 用来安装操作系统,扩展分区则多用来存储文件数据。

Linux 内核读取光驱、硬盘等资源时均通过“设备文件”的形式进行,因此在 Linux 系 统中,将硬盘和分区分别表示为不同的文件。具体表述形式如下:

  • 硬盘:对于 IDE 接口的硬盘设备,表示为hdX形式的文件名;而对于 SCSI 接口的硬 盘设备,则表示为sdX形式的文件名。其中X可以为 abcd 等字母序号。

  • 分区:表示分区时,以硬盘设备的文件名作为基础,在后边添加该分区(无论主分区、 扩展分区、逻辑分区)对应的数字序号即可。需要注意的是,由于硬盘中的主分区数目只有 4 个,因此主分区和扩展分区的序号也就限制在 1~4,而逻辑分区的序号将始终从5开始。

Linux 中使用的文件系统类型

文件系统(File System)类型决定了向分区中存放、读取文件数据的方式和效率,在 对分区进行格式化时需要选择所使用的文件系统类型。

  • XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万 T 字节的 存储空间。

  • SWAP:交换文件系统,用于为Linux系统建立交换分区。交换分区的作用相当于虚拟内 存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物 理内存的 1.5~2 倍。

  • EXT4:第 4 代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中默认使 用的文件系统。EXT4是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。

Linux系统还广泛支持其他各种类型的文件系统,如 JFSFAT16FAT32NTFS 等。

管理磁盘及分区

fdisk命令——查看或管理磁盘分区

  • 命令格式

    fdisk [磁盘设备]

    fdisk -l [磁盘文件]

[root@localhost ~]# fdisk -l             //查看磁盘当前磁盘信息

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009dfa2 设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 4196351 2097152 83 Linux
/dev/sda2 4196352 46139391 20971520 83 Linux
/dev/sda3 46139392 62916607 8388608 82 Linux swap / Solaris
/dev/sda4 62916608 83886079 10484736 5 Extended
/dev/sda5 62918656 83886079 10483712 83 Linux

设备:分区的设备文件名称。

Boot:是否是引导分区。若是,则有*标识。

Start:该分区在硬盘中的起始位置(柱面数)。

End:该分区在硬盘中的结束位置(柱面数)。

Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节。

Id:分区对应的系统 ID 号。

System:分区类型。

  • 交互模式指令
指令 含义
m 帮助信息
p 显示分区列表
n 创建分区
d 删除分区
t 转换分区类型 ID号进行转换
w 保存修改
q 退出
[root@localhost ~]# fdisk /dev/sda              //输入命令,进入交互模式
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 命令(输入 m 获取帮助):m //输入m查看帮助信息
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

规划硬盘中的分区

  • 在VMware虚拟机添加一块60G的硬盘,并重启Linux虚拟机,识别硬盘,运用fdisk -l命令常看硬盘信息。
[root@localhost ~]# fdisk -l                 //查看硬盘信息

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009dfa2 设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 4196351 2097152 83 Linux
/dev/sda2 4196352 46139391 20971520 83 Linux
/dev/sda3 46139392 62916607 8388608 82 Linux swap / Solaris
/dev/sda4 62916608 83886079 10484736 5 Extended
/dev/sda5 62918656 83886079 10483712 83 Linux 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区 //新添加的硬盘sdb
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
  • 输入fdisk /dev/sdb命令进入磁盘设备管理工具模式
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 Device does not contain a recognized partition table
使用磁盘标识符 0x7f2bcf16 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):
  • 输入n指令,创建新分区
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 Device does not contain a recognized partition table
使用磁盘标识符 0x7f2bcf16 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n
Partition type: //分区类型
p primary (0 primary, 0 extended, 4 free) //主分区
e extended //扩展分区
Select (default p):
  • 输入p指令选择创建主分区
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 Device does not contain a recognized partition table
使用磁盘标识符 0xd7cb247d 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p //创建主分区
分区号 (1-4,默认 1): //未填写,默认分区号为1
起始 扇区 (2048-125829119,默认为 2048): //起始扇区未填写,默认为2048
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119):+15G //结束扇区填写要创键的 分区大小
分区 1 已设置为 Linux 类型,大小设为 15 GiB //创建完成 命令(输入 m 获取帮助):
  • 这时可以输入p指令查看是否成功创建分区
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 Device does not contain a recognized partition table
使用磁盘标识符 0xd7cb247d 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
...//省略部分内容...
命令(输入 m 获取帮助):p //显示分区列表 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd7cb247d 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux //成功创建分区 命令(输入 m 获取帮助):
  • 继续输入n创建分区
 ...//省略部分内容...
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux 命令(输入 m 获取帮助):n //创建分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p //主分区
分区号 (2-4,默认 2):
起始 扇区 (31459328-125829119,默认为 31459328):
将使用默认值 31459328
Last 扇区, +扇区 or +size{K,M,G} (31459328-125829119,默认为 125829119):+10G //分区大小10G
分区 2 已设置为 Linux 类型,大小设为 10 GiB 命令(输入 m 获取帮助):p //查看分区列表 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc89f5933 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux
/dev/sdb2 31459328 52430847 10485760 83 Linux //成功创建分区 命令(输入 m 获取帮助):
  • 输入n创建一个扩展分区
...//省略部分内容...
命令(输入 m 获取帮助):n //创建分区
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): e //创建扩展分区
分区号 (3,4,默认 3):4 //选择分区号为4
起始 扇区 (52430848-125829119,默认为 52430848): //默认起始扇区变
将使用默认值 52430848
Last 扇区, +扇区 or +size{K,M,G} (52430848-125829119,默认为 125829119): //结束扇区使用默认值
将使用默认值 125829119
分区 4 已设置为 Extended 类型,大小设为 35 GiB //剩余全部分区作为扩展分区 命令(输入 m 获取帮助):p //查看分区列表 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc89f5933 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux
/dev/sdb2 31459328 52430847 10485760 83 Linux
/dev/sdb4 52430848 125829119 36699136 5 Extended //成功创建扩展分区 命令(输入 m 获取帮助):
  • 输入n在扩展中创建逻辑分区,以方便我们使用分区
...//省略部分内容...
命令(输入 m 获取帮助):n //创建分区
Partition type:
p primary (2 primary, 1 extended, 1 free) //主分区
l logical (numbered from 5) //逻辑分区
Select (default p): l //选择创建逻辑分区
添加逻辑分区 5 //默认从5开始分区
起始 扇区 (52432896-125829119,默认为 52432896): //起始扇区为默认值
将使用默认值 52432896
Last 扇区, +扇区 or +size{K,M,G} (52432896-125829119,默认为 125829119):+8G
分区 5 已设置为 Linux 类型,大小设为 8 GiB //创建8G大小的逻辑分区 命令(输入 m 获取帮助):p //查看分区列表 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc89f5933 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux
/dev/sdb2 31459328 52430847 10485760 83 Linux
/dev/sdb4 52430848 125829119 36699136 5 Extended
/dev/sdb5 52432896 69210111 8388608 83 Linux //成功创建逻辑分区 命令(输入 m 获取帮助):
  • 输入n继续创建逻辑分区
...//省略部分内容...
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (69212160-125829119,默认为 69212160):
将使用默认值 69212160
Last 扇区, +扇区 or +size{K,M,G} (69212160-125829119,默认为 125829119):
将使用默认值 125829119
分区 6 已设置为 Linux 类型,大小设为 27 GiB //剩余全部容量分配给逻辑分区6 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc89f5933 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux
/dev/sdb2 31459328 52430847 10485760 83 Linux
/dev/sdb4 52430848 125829119 36699136 5 Extended
/dev/sdb5 52432896 69210111 8388608 83 Linux
/dev/sdb6 69212160 125829119 28308480 83 Linux //成功创建分区 命令(输入 m 获取帮助):
  • 这时候对分区进行修改,把sdb5分区类型修改为swap交换分区
命令(输入 m 获取帮助):t                //输入修改分区
分区号 (1,2,4-6,默认 6):5 //选择分区号
Hex 代码(输入 L 列出所有代码):82 //输入swap分区代码
已将分区“Linux”的类型更改为“Linux swap / Solaris” 命令(输入 m 获取帮助):p //查看分区列表 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc89f5933 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux
/dev/sdb2 31459328 52430847 10485760 83 Linux
/dev/sdb4 52430848 125829119 36699136 5 Extended
/dev/sdb5 52432896 69210111 8388608 82 Linux swap / Solaris //成功修改分区
/dev/sdb6 69212160 125829119 28308480 83 Linux 命令(输入 m 获取帮助):
  • 修改sdb6分区类型格式修改为FAT文件类型格式(这里只是演示,不建议使用此格式,此格式写入文件最大支持单个文件4G的写入)
命令(输入 m 获取帮助):t
分区号 (1,2,4-6,默认 6):6
Hex 代码(输入 L 列出所有代码):b //输入FAT文件系统格式代码 WARNING: If you have created or modified any DOS 6.xpartitions, please see the fdisk manual page for additionalinformation. 已将分区“Linux”的类型更改为“W95 FAT32” 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc89f5933 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux
/dev/sdb2 31459328 52430847 10485760 83 Linux
/dev/sdb4 52430848 125829119 36699136 5 Extended
/dev/sdb5 52432896 69210111 8388608 82 Linux swap / Solaris
/dev/sdb6 69212160 125829119 28308480 b W95 FAT32 //修改成功 命令(输入 m 获取帮助):
  • 删除sdb2分区
命令(输入 m 获取帮助):d               //输入删除分区指令
分区号 (1,2,4-6,默认 6):2 //要删除的分区号
分区 2 已删除 命令(输入 m 获取帮助):p //查看分区列表 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc89f5933 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux
/dev/sdb4 52430848 125829119 36699136 5 Extended
/dev/sdb5 52432896 69210111 8388608 82 Linux swap / Solaris
/dev/sdb6 69212160 125829119 28308480 b W95 FAT32
//sbd2分区成功删除
命令(输入 m 获取帮助):
  • 完成分区后输入w指令保存设置,并退出

命令(输入 m 获取帮助):w //保存磁盘设置
The partition table has been altered! Calling ioctl() to re-read partition table.
正在同步磁盘。 //完成磁盘设置
[root@localhost ~]#
  • 输入fdisk -l查看磁盘信息
[root@localhost ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009dfa2 设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 4196351 2097152 83 Linux
/dev/sda2 4196352 46139391 20971520 83 Linux
/dev/sda3 46139392 62916607 8388608 82 Linux swap / Solaris
/dev/sda4 62916608 83886079 10484736 5 Extended
/dev/sda5 62918656 83886079 10483712 83 Linux 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes //显示设置成功的sdb磁盘信息
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc89f5933 设备 Boot Start End Blocks Id System
/dev/sdb1 2048 31459327 15728640 83 Linux
/dev/sdb4 52430848 125829119 36699136 5 Extended
/dev/sdb5 52432896 69210111 8388608 82 Linux swap / Solaris
/dev/sdb6 69212160 125829119 28308480 b W95 FAT32
[root@localhost ~]#

文件管理系统

创建文件系统(格式化分区)

  • mkfs命令——(Mask Filesystem)创建文件系统

    命令格式

    mkfs -t [文件格式] [分区设备]

    mkfs.[文件格式] [分区设备]

  • 创建XFS文件系统

[root@localhost ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=3932160, 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
[root@localhost ~]#
  • 创建FAT格式文件系统
[root@localhost ~]# mkfs.vfat -F 32 /dev/sdb6
mkfs.fat 3.0.20 (12 Jun 2013)
  • mkswap 命令——创建交换文件系统

    mkswap [分区设备]

[root@localhost ~]# mkswap /dev/sdb5
正在设置交换空间版本 1,大小 = 8388604 KiB
无标签,UUID=576a3fba-5a63-486a-aab9-17e644495787
[root@localhost ~]#

挂载、卸载文件系统

Linux 操作系统中,对各种存储设备中的资源访问(如读取、保存文件等)都是通过目录结构进行的,虽然操作系统核心能够通过“设备文件”的方式操纵各种设备,但是对于用户来说,还需要增加一个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源。

  • df -hT命令——查看磁盘使用情况,并友好显示,以及类型。
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.3G 16G 22% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.0M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 50M 10G 1% /home
/dev/sda1 xfs 2.0G 174M 1.9G 9% /boot
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/0
  • mount命令——挂载文件系统

    命令格式

    mount [-t 文件系统类型 ] 存储设备 挂载点

    mount [-o 挂载参数 ] 存储设备 挂载点

[root@localhost ~]# mkdir /opt/siti                 //创建目录
[root@localhost ~]# mount /dev/sdb1 /opt/siti //将sdb1挂载到siti目录
[root@localhost ~]# df -hT //查看磁盘使用情况
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.3G 16G 22% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.0M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 50M 10G 1% /home
/dev/sda1 xfs 2.0G 174M 1.9G 9% /boot
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/sdb1 xfs 15G 33M 15G 1% /opt/siti //sdb1成功挂载到siti目录
  • umount命令——卸载挂载点

    命令格式

    umount [挂载点]

    umount [设备分区]

[root@localhost ~]# umount /opt/siti
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.3G 16G 22% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.0M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 50M 10G 1% /home
/dev/sda1 xfs 2.0G 174M 1.9G 9% /boot
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/0
  • swapon命令——启用新的swap分区系统

    命令格式

    swapon [分区设备]

[root@localhost ~]# cat /proc/meminfo | grep -i "swap"  //查看内存信息中swap内存
SwapCached: 0 kB
SwapTotal: 8388604 kB //swap内存为8G
SwapFree: 8388604 kB
[root@localhost ~]# swapon /dev/sdb5 //添加新的swap分区系统
[root@localhost ~]# cat /proc/meminfo | grep -i "swap" //查看内存信息中swap内存
SwapCached: 0 kB
SwapTotal: 16777208 kB //swap内存为16G
SwapFree: 16777208 kB
  • swapoff命令——关闭启用的swap分区系统

    命令格式

    swapoff [分区设备]

[root@localhost ~]# swapoff /dev/sdb5                    //关闭添加的swap分区系统
[root@localhost ~]# cat /proc/meminfo | grep -i "swap" //查看内存信息中swap内存
SwapCached: 0 kB
SwapTotal: 8388604 kB //swap内存为8G
SwapFree: 8388604 kB

设置文件系统的自动挂载

  • /etc/fstab配置文件

    系统中的/etc/fstab 文件可以视为mount 命令的配置文件,其中存储了文件系统的静态挂载数据。Linux 操作系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。

[root@localhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Aug 9 11:45:58 2019
#
# 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
#
UUID=2e181f68-3027-48da-a779-ac380076d6f3 / xfs defaults 0 0
UUID=0de201d1-2be8-4457-a420-78547726c995 /boot xfs defaults 0 0
UUID=8ac2bc9f-2520-410e-9408-c462d1bd249f /home xfs defaults 0 0
UUID=22d52505-e702-48db-a1ed-f82cb4b1feca swap wap defaults 0 0

/etc/fstab文件中,每一行记录对应一个分区或设备的挂载配置信息,这些信息从左到右包括六个字段(使用空格或制表符分隔),各部分的含义如下:

字段 含义
第1字段 设备名称
第2字段 挂载点
第3字段 文件系统类型
第4字段 功能/权限(rwroexecnoexecdefault
第5字段 是否容灾备份
第6字段 启动检查序列【0(不检查)1(优先检查)2(1检查完在检查)】
  • 编辑/etc/fstab中配置文件,使sdb1分区设备自动挂载
[root@localhost ~]# vim /etc/fstab             //编辑fstab配置文件
#
# /etc/fstab
# Created by anaconda on Fri Aug 9 11:45:58 2019
#
# 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
#
UUID=2e181f68-3027-48da-a779-ac380076d6f3 / xfs defaults 0 0
UUID=0de201d1-2be8-4457-a420-78547726c995 /boot xfs defaults 0 0
UUID=8ac2bc9f-2520-410e-9408-c462d1bd249f /home xfs defaults 0 0
UUID=22d52505-e702-48db-a1ed-f82cb4b1feca swap swap defaults 0 0
/dev/sdbl /opt/si11 xfs defaults 0 0 //编辑挂载信息
~
:wq //保存退出
  • reboot或者mount -a重启设备或重启挂载
[root@localhost ~]# mkdir /opt/si11               //创建挂载点文件目录
[root@localhost ~]# mount -a //刷新挂载
[root@localhost ~]# df -hT //查看磁盘使用情况
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.3G 16G 22% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.0M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 50M 10G 1% /home
/dev/sda1 xfs 2.0G 174M 1.9G 9% /boot
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/sdb1 xfs 15G 33M 15G 1% /opt/si11 //sdb1设备成功挂载
  • 自动挂载光驱

    确认虚拟机光驱正常运行,并添加镜像文件

[root@localhost ~]# !vim                                //回到上一次的编辑内容
#
# /etc/fstab
# Created by anaconda on Fri Aug 9 11:45:58 2019
#
# 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
#
UUID=2e181f68-3027-48da-a779-ac380076d6f3 / xfs defaults 0 0
UUID=0de201d1-2be8-4457-a420-78547726c995 /boot xfs defaults 0 0
UUID=8ac2bc9f-2520-410e-9408-c462d1bd249f /home xfs defaults 0 0
UUID=22d52505-e702-48db-a1ed-f82cb4b1feca swap swap defaults 0 0
/dev/sdb1 /opt/si11 xfs defaults 0 0
/dev/sr0 /opt/ti11 iso9660 defaults 0 0 //编辑挂载光驱配置
~
:wq
[root@localhost ~]# mkdir /opt/ti11                       //创建ti11目录
[root@localhost ~]# mount -a //刷新挂载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -hT //查看磁盘使用情况
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.3G 16G 22% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.0M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 50M 10G 1% /home
/dev/sda1 xfs 2.0G 174M 1.9G 9% /boot
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/sdb1 xfs 15G 33M 15G 1% /opt/si11
/dev/sr0 iso9660 4.3G 4.3G 0 100% /opt/ti11 //成功挂载光驱

补充内容

  • 分区ID号

    82表示swap b表示 FAT83表示ext4 xfs5 表示扩展分区8e表示逻辑卷LVMfd表示RAID

  • ISO文件系统类型:iso9660

详解Linux磁盘管理与文件系统的更多相关文章

  1. Linux磁盘管理——日志文件系统与数据一致性

    参考:Linux磁盘管理——Ext2文件系统 数据不一致 上图是Ext2结构图,其他FS结构类似. 一般来说,我们将 inode table 与 data block 称为数据区:至于其他例如 sup ...

  2. Linux fdisk命令参数及用法详解---Linux磁盘分区管理命令fdisk

    fdisk 命令 linux磁盘分区管理 用途:观察硬盘之实体使用情形与分割硬盘用. 使用方法: 一.在 console 上输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形. 二.在 ...

  3. Linux磁盘管理与文件系统

    文章目录一.硬盘结构二.MBR与磁盘分区表示三.磁盘分区结构四.文件系统类型●1.XFS文件系统●2.SWAP,交换文件系统●3.Linux支持的其他文件系统类型五.命令部分--检测并确认新硬盘●1. ...

  4. Linux quota命令参数及用法详解---Linux磁盘配额限制设置和查看命令

    功能说明:显示磁盘已使用的空间与限制. 语 法:quota [-quvV][用户名称...] 或 quota [-gqvV][群组名称...] 补充说明:执行quota指令,可查询磁盘空间的限制,并得 ...

  5. linux 磁盘管理与文件系统

    一.磁盘分区的意义 磁盘分区就是为了将磁盘分成不同的逻辑区域,每个分区可以有不同的文件系统 二. 磁盘分区是按照磁盘的柱面进行分区的,由于盘片在转动时的角速度都是一样的,所以磁头在最外层的磁道上读取信 ...

  6. Linux磁盘管理——Ext2文件系统

    前言 通常而言,对于一块新磁盘我们不是直接使用,而是先分区,分区完毕后格式化,格式化后OS才能使用这个文件系统.分区可能会涉及到MBR和GPT问题.至于格式化和文件系统又有什么关系? 这里的格式化指的 ...

  7. Linux磁盘管理——虚拟文件系统

    前言 Linux支持众多文件系统,包括: 传统文件系统:ext2 / minix / MS-DOS / FAT (用 vfat 模块) / iso9660 (光盘)等等:日志式文件系统: ext3 / ...

  8. Linux分页机制之分页机制的实现详解--Linux内存管理(八)

    1 linux的分页机制 1.1 四级分页机制 前面我们提到Linux内核仅使用了较少的分段机制,但是却对分页机制的依赖性很强,其使用一种适合32位和64位结构的通用分页模型,该模型使用四级分页机制, ...

  9. Linux磁盘管理——directory tree与mount point

    参考:/sys 和 /dev 区别 Linux磁盘管理——虚拟文件系统 Directory tree Linux内的所有数据都是以文件的形态来呈现的,所以整个Linux系统最重要的地方就是direct ...

随机推荐

  1. 【Leetcode_easy】937. Reorder Log Files

    problem 937. Reorder Log Files solution: class Solution { public: vector<string> reorderLogFil ...

  2. Linux之sudo免密码操作

    使用普通用户只需特权命令是需要输入密码,然后在五分钟以内只需命令可以免密码,下面设置免密码操作 系统环境查看 切换至root用户 sudo -i #需要输入密码 修改sudoers文件 #增加一行 y ...

  3. 【NER】对命名实体识别(槽位填充)的一些认识

    命名实体识别 1. 问题定义 广义的命名实体识别是指识别出待处理文本中三大类(实体类.时间类和数字类).七小类(人名.机构名.地名.日期.货币和百分比)命名实体.但实际应用中不只是识别上述所说的实体类 ...

  4. 有关_meta内容(持续更新)

    假设在models里创建了一个类:UserInfo model.UserInfo._meta.app_label #获取该类所在app的app名称 model.UserInfo._meta.model ...

  5. idea创建自定义代码块

    1.File——>settings 2.找到Editor——>live Templates,点击加号+ 3.创建group或直接创建,我这里创建了一个user组,然后在user组里面添加l ...

  6. 守护进程daemon

    # -*- coding: utf-8 -*- import sys, os, time, atexit from signal import SIGTERM class Daemon: def __ ...

  7. SSM-CRUD

    一.项目介绍 前端技术:query+Bootstrap+ajax+json 后端技术:SSM(spring.springMVC.mybatis).JSR303校验 数据库:mysql 服务器:tomc ...

  8. QT 创建本地数据库(SQLite数据库)存储数据

    注意:QT自带SQLITE数据库,不需要再安装 1.创建一个包含创建.查询.修改和删除数据库的数据库类(DataBase) DataBase.h头文件 #pragma once #include &l ...

  9. windows密码凭据

  10. python 之 数据库(视图、触发器、事务、存储过程)

    10.13 视图 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次用的直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 视图记录的增.删 ...