磁盘空间管理、MBR与GPT分区模式、fdisk命令使用、件系统、开机自动挂载、GPT分区模式划分、parted使用、交换空间介绍、交换分区制作、使用交换分区

1 往日再来:仰天大笑出门去,我辈岂是蓬蒿人

2 环境准备:还原快照"安装系统完成"状态

3 虚拟机添加硬盘

关闭虚拟机

复制代码
    [root@localhost ~]# poweroff 

一共添加两块硬盘,然后开启虚拟机

查看本机识别的新的硬盘

复制代码
    [root@localhost ~]# lsblk 
    NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sr0          11:0    1 10.5G  0 rom  
    /dev/sda     259:0    0   20G  0 disk 
    ├─sda1 259:1    0    1G  0 part /boot
    └─sda2 259:2    0   19G  0 part 
      ├─rl-root 253:0    0   17G  0 lvm  /
      └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
    /dev/sdb     259:3    0   20G  0 disk 
    /dev/sdc    259:4    0   20G  0 disk 
    [root@localhost ~]#

计算机容量单位:

一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是:

1KB (Kilobyte 千字节)=1024B,

1MB (Megabyte 兆字节 简称"兆")=1024KB,

1GB (Gigabyte 吉字节 又称"千兆")=1024MB,

1TB (Terabyte 万亿字节 太字节)=1024GB,

1PB (Petabyte 千万亿字节 拍字节)=1024TB,

1EB (Exabyte 百亿亿字节 艾字节)=1024PB,

1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB,

1YB (Yottabyte 一亿亿亿字节 尧字节)= 1024 ZB,

1BB (Brontobyte 一千亿亿亿字节)= 1024 YB.

4 硬盘分区思路

一块硬盘的"艺术"之旅(硬盘空间使用,经历的步骤)

•识别硬盘 => 分区规划 => 格式化 => 挂载使用

5 识别硬盘

root@localhost \~\]# lsblk #列出当前系统识别的硬盘 ### 6 分区规划 •分区方案(分区模式): MBR与GPT •MBR(msdos)分区模式(如图-12所示) --分区类型:主分区、扩展分区(占用所有剩余空间)、逻辑分区 --最多只能有4个主分区 --扩展分区可以没有,至多有一个 --1\~4个主分区,或者 3个主分区+1个扩展分区(n个逻辑分区) --最大支持容量为 2.2TB 的磁盘 --扩展分区不能格式化,空间不能直接存储数据 --可以用于存储数据的分区:主分区与逻辑分区 ![](https://file.jishuzhan.net/article/1747178661187948546/53de8f0af8a4524e532cc5e3f9ac2bbd.webp) fdisk常用交互指令:专门用来划分MBR分区模式 * m 列出指令帮助 * p 查看现有的分区表(存放分区信息的表格) * n 新建分区 * d 删除分区 * q 放弃更改并退出 * w 保存更改并退出 [root@localhost ~]# fdisk /dev/vdb n 创建新的分区----->分区类型 回车----->分区编号 回车---->起始扇区 回车----->在last结束时 +2G p 查看分区表 n 创建新的分区----->分区类型 回车----->分区编号 回车---->起始扇区 回车----->在last结束时 +1G w 保存并退出 [root@localhost ~]# lsblk [root@localhost ~]# ls /dev/vdb[1-2] ### 7 格式化:赋予空间文件系统的过程 文件系统:数据在空间中,存放的规则 Windows常见的文件系统:NTFS FAT(兼容性强) Linux常见的文件系统:ext4(6系列) xfs(7系列以上) FAT [root@localhost ~]# mkfs.(tab)(tab) #连续按两次tab键 [root@localhost ~]# mkfs.ext4 /dev/vdb1 #格式化文件系统ext4 [root@localhost ~]# mkfs.xfs /dev/vdb2 #格式化文件系统xfs [root@localhost ~]# blkid /dev/vdb1 #查看文件系统类型 [root@localhost ~]# blkid /dev/vdb2 #查看文件系统类型 [root@localhost ~]# mkfs.xfs -f /dev/vdb2 #强制格式化文件系统xfs ### 8 临时挂载使用 [root@localhost ~]# mkdir /mypart1 [root@localhost ~]# mount /dev/vdb1 /mypart1 [root@localhost ~]# df -h /mypart1 #显示正在挂载设备的使用情况显示 [root@localhost ~]# mkdir /mypart2 [root@localhost ~]# mount /dev/vdb2 /mypart2 [root@localhost ~]# df -h /mypart1 /mypart2 #显示正在挂载的设备信息,使用情况的显示 ### 9 开机自动挂载/etc/fstab 设备路径 挂载点 文件系统类型 参数 备份标记 检测顺序 [root@localhost ~]# blkid /dev/vdb1 #查看文件系统类型 [root@localhost ~]# blkid /dev/vdb2 #查看文件系统类型 [root@localhost ~]# vim /etc/fstab #vmware虚拟机 /dev/sdb1 /mypart1 ext4 defaults 0 0 /dev/sdb2 /mypart2 xfs defaults 0 0 [root@localhost ~]# vim /etc/fstab #KVM虚拟机 /dev/vdb1 /mypart1 ext4 defaults 0 0 /dev/vdb2 /mypart2 xfs defaults 0 0 ### 10 开机自动挂载/etc/fstab 测试 设备路径 挂载点 文件系统类型 参数 备份标记 检测顺序 [root@localhost ~]# umount /mypart1 #卸载 [root@localhost ~]# umount /mypart2 #卸载 [root@localhost ~]# df -h | grep mypart #没有输出 [root@localhost ~]# mount -a 检测/etc/fstab开机自动挂载配置文件,格式是否正确 检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载 [root@localhost ~]# df -h | grep mypart #有输出 [root@localhost ~]# reboot #不是必须的 ### 11 如果/etc/fstab文件有误:修复办法 1.输入root的密码,如图-13所示) ![](https://file.jishuzhan.net/article/1747178661187948546/b4f75fa1745da04c652dc28e1ad34173.webp) 2.修改/etc/fstab文件内容(如图-14所示) ![](https://file.jishuzhan.net/article/1747178661187948546/a5a40a563459dfb81c8d819cf10c751e.webp) 12 综合分区 [root@localhost ~]# fdisk /dev/vdb p 查看分区表 n 创建主分区--->回车--->回车--->回车--->在last结束时 +2G p 查看分区表 n 创建主分区--->p回车 --->起始回车--->结束回车 将所有剩余空间给最后一个分区 p 查看分区表 w 保存并退出 [root@localhost ~]# lsblk 练习逻辑分区划分(了解) ![](https://file.jishuzhan.net/article/1747178661187948546/cc0ba53293a36bc125777ee2cb9a3f9e.webp) [root@localhost ~]# fdisk /dev/vdc p 查看分区表 n 创建主分区--->回车--->回车--->回车--->在last结束时 +2G n 创建主分区--->回车--->回车--->回车--->在last结束时 +2G n 创建主分区--->回车--->回车--->回车--->在last结束时 +2G p 查看分区表 n 创建扩展分区 --->回车--->起始回车--->结束回车 将所有剩余空间给扩展分区 p 查看分区表 n 创建逻辑分区----->起始回车------>在last结束时+2G n 创建逻辑分区----->起始回车------>在last结束时+2G n 创建逻辑分区----->起始回车------>在last结束时回车 p 查看分区表 w 保存并退出 [root@localhost ~]# lsblk [root@localhost ~]# parted /dev/vdc print #查看分区类型 ### 13 补充命令partprobe刷新分区表 ### 14 分区模式GPT 1.关闭虚拟机,添加新的20G硬盘 [root@localhost ~]# poweroff [root@localhost ~]# lsblk 2.分区模式GPT •GPT,GUID Partition Table --全局唯一标识分区表 --突破固定大小64字节的分区表限制 --可支持4个以上的主分区,最大支持18EB容量 \*\* 1 EB = 1024 PB = 1024 x 1024 TB •parted常用分区指令 --help //查看指令帮助 --mktable gpt //建立指定模式分区表 --mkpart 分区的名称 文件系统类型 start end //指定大小或百分比%作为起始、结束位置 --print //查看分区表 --rm 序号 //删除指定的分区 --quit //退出交互环境 •parted进行分区 [root@localhost ~]# parted /dev/vdd (parted) mktable gpt #指定分区模式 (parted) mkpart #划分新的分区 分区名称? []? haha #随意写,不写也可以 文件系统类型? [ext2]? ext4 #随意写,不会进行格式化 起始点? 0 结束点? 5G 忽略/Ignore/放弃/Cancel? Ignore #选择忽略,输入i(tab)补全 (parted) print #查看分区表信息 (parted) unit GB #使用GB作为单位 (parted) print (parted) mkpart #划分新的分区 分区名称? []? haha 文件系统类型? [ext2]? ext4 起始点? 5G #为上一个分区的结束 结束点? 100% #全部空间 (parted) print (parted) quit #退出 [root@localhost ~]# lsblk •parted进行分区使用 [root@localhost ~]# mkfs.xfs /dev/vdd1 #格式化文件系统 [root@localhost ~]# blkid /dev/vdd1 [root@localhost ~]# vim /etc/fstab #增加一行信息 /dev/vdd1 /mypart3 xfs defaults 0 0 [root@localhost ~]# mkdir /mypart3 [root@localhost ~]# mount -a [root@localhost ~]# df -h /mypart3 ### 15 分区总结 1. 识别硬盘 :lsblk 查看识别的硬盘 2. 硬盘分区 :fdisk命令 parted命令 3. 分区模式:MBR分区方案 GPT分区方案 4. 格式化 :mkfs.ext4 mkfs.xfs blkid 5. 挂在使用:mount 手动挂载 与/etc/fstab开机自动挂载 6. 利用mount -a检测开机自动挂载 ### 16 交换空间(虚拟内存) 利用硬盘的空间,充当内存的空间 比如:CPU(喝水)-----\>内存(水缸)-----\>硬盘(水井) 当物理内存占满了,可以将内存的中数据,暂时放入交换空间中,缓解真实物理内存的压力 利用硬盘分区制作交换空间 [root@localhost ~]# ls /dev/vdc1 [root@localhost ~]# mkswap /dev/vdc1 #格式化交换文件系统 [root@localhost ~]# blkid /dev/vdc1 #查看文件系统类型 [root@localhost ~]# swapon #查看交换空间组成的成员信息 [root@localhost ~]# swapon /dev/vdc1 #启用交换分区 [root@localhost ~]# swapon #查看交换空间组成的成员信息 [root@localhost ~]# free -h #查看交换空间的大小 [root@localhost ~]# swapoff /dev/vdc1 #停用交换分区 [root@localhost ~]# swapon #查看交换空间组成的成员信息 [root@localhost ~]# free -h #查看交换空间的大小 开机自动启用交换分区 [root@localhost ~]# vim /etc/fstab #增加一行信息 /dev/vdc1 swap swap defaults 0 0 [root@localhost ~]# swapon #查看交换空间组成的成员信息 [root@localhost ~]# swapon -a #专门检测交换分区的书写 [root@localhost ~]# swapon #查看交换空间组成的成员信息 [root@localhost ~]# reboot #进行测试(不是必须的) ### 17 真机为Linux系统:真机空间不够 KVM虚拟机化:一切皆文件,真机会创建一个大文件,充当虚拟机的硬盘 需要管理员手动删除对应的硬盘文件 查看虚拟机对应的硬盘文件,如图-16所示。 ![](https://file.jishuzhan.net/article/1747178661187948546/eb22b836129a5231d0c7f3682d518114.webp) 真机上操作:删除不用的硬盘文件 \[root@localhost /\]# cd /var/lib/libvirt/images \[root@localhost images\]# ls \[root@localhost images\]# df -h / #查看根分区使用情况 ### 18 案例1:硬盘分区及格式化 #### 18.1 问题 本例要求熟悉硬盘分区结构,使用fdisk分区工具在磁盘 /dev/vde上按以下要求建立分区: 1. 采用默认的 msdos 分区模式 2. 第1个分区 /dev/vde1 的大小为 200MiB 3. 第2个分区 /dev/vde2 的大小为 2000MiB 4. 第3个分区 /dev/vde3 的大小为 1000MiB 完成分区后,能够配置开机自动挂载 /dev/vde2 分区: 1. 文件系统类型为 EXT4 2. 将其挂载到 /mnt/part2 目录 #### 18.2 方案 fdisk分区工具用来建立msdos分区方案,其交互模式中的主要指令如下: * m:列出指令帮助 * p:查看当前的分区表信息 * n:新建分区 * d:删除分区 * q:放弃分区更改并退出 * w:保存对分区表所做的更改 #### 18.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:新建分区表 1)打开fdisk工具,操作磁盘/dev/vde [root@server0 ~]# fdisk /dev/vde Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x9ac1bc10. Command (m for help): //交互操作提示信息 2)新建第1个分区/dev/vde1 Command (m for help): n //新建分区 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p //类型为p(主分区) Partition number (1-4, default 1): 1 //分区编号1 First sector (2048-20971519, default 2048): //起始位置默认 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +200M Partition 1 of type Linux and of size 200 MiB is set //结束位置+200MiB大小 Command (m for help): p //确认当前分区表 .. .. Device Boot Start End Blocks Id System /dev/vde1 2048 411647 204800 83 Linux 3)新建第2个分区/dev/vde2 Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p //类型为p(主分区) Partition number (2-4, default 2): 2 //分区编号2 First sector (411648-20971519, default 411648): //起始位置默认 Using default value 411648 Last sector, +sectors or +size{K,M,G} (411648-20971519, default 20971519): +2000M Partition 2 of type Linux and of size 2 GiB is set //结束位置+2000MiB大小 Command (m for help): p //确认当前分区表 .. .. Device Boot Start End Blocks Id System /dev/vde1 2048 411647 204800 83 Linux /dev/vde2 411648 4507647 2048000 83 Linux 4)新建第3个分区/dev/vde3 Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (3,4, default 3): 3 First sector (4507648-20971519, default 4507648): Using default value 4507648 Last sector, +sectors or +size{K,M,G} (4507648-20971519, default 20971519): +1000M Partition 3 of type Linux and of size 1000 MiB is set Command (m for help): p //确认当前分区表 .. .. Device Boot Start End Blocks Id System /dev/vde1 2048 411647 204800 83 Linux /dev/vde2 411648 4507647 2048000 83 Linux /dev/vde3 4507648 6555647 1024000 83 Linux 5)保存分区更改,退出fdisk分区工具 Command (m for help): w //保存并退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. 步骤二:格式化及挂载分区 1)将分区/dev/vdb2格式化为EXT4文件系统 [root@server0 ~]# mkfs.ext4 /dev/vde2 .. .. Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done 2)配置开机自动挂载 [root@server0 ~]# vim /etc/fstab .. .. /dev/vde2 /mnt/part2 ext4 defaults 0 0 3)创建挂载点,并验证挂载配置 [root@server0 ~]# mkdir /mnt/part2 //创建挂载点 [root@server0 ~]# mount -a //挂载fstab中的可用设备 [root@server0 ~]# df -hT /mnt/part2/ //检查文档所在的文件系统及设备 Filesystem Type Size Used Avail Use% Mounted on /dev/vde2 ext4 1.9G 5.9M 1.8G 1% /mnt/part2 ### 19 案例2:分区扩展Swap空间 #### 19.1 问题 1. 添加新硬盘上划分一个2G的分区vdf1 2. 将/dev/vdf1格式化为Swap文件系统 3. 启用/dev/vdf1分区,查看Swap空间大小 4. 停用/dev/vdf1分区,查看Swap空间大小 #### 19.2 方案 首先要明白Swap分区空间是来源于硬盘,而要想扩充Swap空间的大小,思路很简单就是把硬盘的分区格式成Swap文件系统,再扩充到Swap空间中区。 对于Swap分区有它独立的格式化命令和扩充命令,这里要和普通分区的格式化命令和挂载命令区分开。此外它还有独立查看Swap空间组成的命令。 #### 19.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:从磁盘vdf上划分一个2G的分区vdf1 命令操作如下所示: [root@localhost ~]# fdisk /dev/vdf 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x6faf1c3f 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): #回车 Using default response p 分区号 (1-4,默认 1): #回车 起始 扇区 (2048-41943039,默认为 2048): #回车 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G 分区 1 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):p 磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x6faf1c3f 设备 Boot Start End Blocks Id System /dev/vdf1 2048 4196351 2097152 83 Linux 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@localhost ~]# 步骤二:将/dev/vdf1格式化为swap文件系统 命令操作如下所示: [root@localhost ~]# mkswap /dev/vdf1 //格式化为swap文件系统 Setting up swapspace version 1, size = 1951740 KiB no label, UUID=848ca15c-a03e-4e0b-9ac0-bfd6507d0b7e 步骤三:启用/dev/vdf1分区,查看swap空间大小 命令操作如下所示: [root@localhost ~]# swapon --s //未启用之前,查看swap空间组成成员 Filename Type Size Used Priority /dev/dm-1 partition 8388600 0 -1 [root@localhost ~]# swapon /dev/vdf1 //启用/dev/sdd1交换分区 [root@localhost ~]# swapon --s //启用之后,查看swap空间组成成员 Filename Type Size Used Priority /dev/dm-1 partition 8388600 0 -1 /dev/vdf1 partition 1951736 0 -2 [root@localhost ~]# 步骤四:停用/dev/vdf1分区,查看swap空间大小 命令操作如下所示: [root@localhost ~]# swapoff /dev/vdf1 //停用/dev/sdd1交换分区 [root@localhost ~]# swapon -s Filename Type Size Used Priority /dev/dm-1 partition 8388600 0 -1 [root@localhost ~]#

相关推荐
斗转星移35 小时前
Ubuntu20.04 中使用vscode中编辑查看PlantUML
linux·vscode·uml·plantuml
正经教主6 小时前
【问题】解决docker的方式安装n8n,找不到docker.n8n.io/n8nio/n8n:latest镜像的问题
运维·docker·容器·n8n
sukida1006 小时前
BIOS主板(非UEFI)安装fedora42的方法
linux·windows·fedora
●^●7 小时前
Linux 权限修改详解:chmod 命令与权限数字的秘密
linux
唯独失去了从容7 小时前
WebRTC服务器Coturn服务器中的通信协议
运维·服务器·webrtc
光而不耀@lgy8 小时前
C++初登门槛
linux·开发语言·网络·c++·后端
joker_zsl8 小时前
docker的安装和简单使用(ubuntu环境)
运维·docker·容器
偶尔微微一笑8 小时前
AI网络渗透kali应用(gptshell)
linux·人工智能·python·自然语言处理·编辑器
Run1.8 小时前
深入解析 Linux 中动静态库的加载机制:从原理到实践
linux·运维·服务器
VI8664956I268 小时前
全链路自动化AIGC内容工厂:构建企业级智能内容生产系统
运维·自动化·aigc