前言
Hello,这是一篇介绍磁盘分区管理和创建以及挂载、卸载文件系统的文章,详细罗列了创建xfs、swap分区的代码步骤。如果对你有帮助的话还请点个赞支持一下博主哟,感谢🌹🌹🌹
管理磁盘及分区
fdisk命令
查看或管理磁盘分区
交互模式中的常用指令
d
delete a partition *****
删除分区g
create a new empty GPT partition table
创建一个新的空的GPT分区表(可以对大于2T磁盘进行分区)l
list known partition types
列出可以分区的类型???m
print this menu
输出帮助菜单n
add a new partition *****
新建增加一个分区p
print the partition table *****
输出分区的结果信息q
quit without saving changes
不保存退出t
change a partition s system id
改变分区的系统id == 改变分区类型(LVM 增加swap分区大小)u
change display/entry units
改变分区的方式 是否按照扇区进行划分w
write table to disk and exit *****
将分区的信息写入分区表并退出 == 保存分区信息并退出
创建xfs格式分区
[root@localhost ~]# fdisk -l //查看磁盘分区
[root@localhost ~]# fdisk /dev/sdb //管理/dev下的sdb磁盘
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xafa5725e 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
//各命令作用
d delete a partition *****
删除分区
g create a new empty GPT partition table
创建一个新的空的GPT分区表(可以对大于2T磁盘进行分区)
l list known partition types
列出可以分区的类型???
m print this menu
输出帮助菜单
n add a new partition *****
新建增加一个分区
p print the partition table *****
输出分区的结果信息
q quit without saving changes
不保存退出
t change a partition s system id
改变分区的系统id==改变分区类型(LVM 增加swap分区大小)
u change display/entry units
改变分区的方式 是否按照扇区进行划分
w write table to disk and exit *****
将分区的信息写入分区表并退出==保存分区信息并退出
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
命令(输入 m 获取帮助):p //查看分区结果
命令(输入 m 获取帮助):t //可以修改分区类型
已选择分区 1
Hex 代码(输入 L 列出所有代码):L
//查看分区类型对应的代码,默认的83就行
命令(输入 m 获取帮助):w //保存
[root@localhost ~]# fdisk -l //再查看磁盘分区
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10485759 5241856 83 Linux
[root@localhost ~]# partprobe /dev/sdb //让系统可以加载识别分区文件
[root@localhost ~]# mkfs -t xfs /dev/sdb1
//创建文件系统,即格式化硬盘
创建swap格式分区
创建3G的xfs分区,2G的swap分区
[root@localhost /]# fdisk /dev/sdb
命令(输入 m 获取帮助):p
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10485759 5241856 83 Linux
命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除
命令(输入 m 获取帮助):p //可以看到之前的分区没有了
//新建分区
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p //新建主分区
分区号 (1-4,默认 1):1
起始 扇区 (2048-10485759,默认为 2048): //直接敲回车默认
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+3G //大小3G
分区 1 已设置为 Linux 类型,大小设为 3 GiB
命令(输入 m 获取帮助):p //查看分区
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 83 Linux
//新建SWAP类型分区
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e //新建拓展分区
分区号 (2-4,默认 2):4
起始 扇区 (6293504-10485759,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-10485759,默认为 10485759):+2G
值超出范围。
//我的虚拟机硬盘5个G,按道理来说除去3个G还有2个G,但是会报错。因为系统的计算不会特别严谨,可
能也就1.95个G等,这时直接用默认的结束就行
Last 扇区, +扇区 or +size{K,M,G} (6293504-10485759,默认为 10485759):
将使用默认值 10485759
分区 4 已设置为 Extended 类型,大小设为 2 GiB
命令(输入 m 获取帮助):p //查看分区
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 83 Linux
/dev/sdb4 6293504 10485759 2096128 5 Extended
//但是拓展分区不能直接拿来用的,要结合逻辑分区才能用,所以接下来还要继续新建逻辑分区
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5) //还可以创建逻辑分区
Select (default p): l
添加逻辑分区 5
起始 扇区 (6295552-10485759,默认为 6295552):
将使用默认值 6295552
Last 扇区, +扇区 or +size{K,M,G} (6295552-10485759,默认为 10485759):
将使用默认值 10485759
分区 5 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):p //查看分区
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 83 Linux
/dev/sdb4 6293504 10485759 2096128 5 Extended
/dev/sdb5 6295552 10485759 2095104 83 Linux
//修改分区类型为swap
命令(输入 m 获取帮助):t //改变分区的系统id==改变分区类型
分区号 (1,4,5,默认 5):5 //选择sdb5
Hex 代码(输入 L 列出所有代码):82 //也可以用‘L’查看swap对应的代码
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):p
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 83 Linux
/dev/sdb4 6293504 10485759 2096128 5 Extended
/dev/sdb5 6295552 10485759 2095104 82 Linux swap / Solaris
//修改成功
命令(输入 m 获取帮助):w //保存
[root@localhost /]# partprobe /dev/sdb //让系统可以加载识别分区文件
//格式化硬盘以使用
[root@localhost ~]# mkfs -t xfs -f /dev/sdb1 //xfs格式化
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=786432, 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 ~]# mkswap /dev/sdb5
//swap格式化
正在设置交换空间版本 1,大小 = 2095100 KiB
无标签,UUID=c67be7a8-356e-4d33-a9d0-f870c38105e5
//如果没有像以上出现许多等号的形式,就是没有格式化成功,看看partprobe /dev/sdb是否执行了,
如果还是不能格式化就重启系统再格式化硬盘
管理文件系统
创建文件系统
[root@localhost ~]# mkfs -t xfs /dev/sdb1
[root@localhost ~]# fdisk -l
挂载、卸载文件系统
挂载
//不能直接在/home/下面挂载硬盘,会“挤掉”里面的所有数据导致查看不了,一定要是空目录
[root@localhost ~]# mkdir /sdb
[root@localhost ~]# cd /
[root@localhost /]# ls
bin dev home lib64 mnt proc run sdb srv tmp var
boot etc lib media opt root sbin server sys usr
[root@localhost /]# mount -t xfs /dev/sdb1 /sdb //xfs格式分区的挂载
[root@localhost ~]# swapon /dev/sdb5 //swap格式分区的挂载
卸载
[root@localhost ~]# umount /sdb
[root@localhost ~]# umount /dev/sdb1
//要退出/sdb目录然后卸载,否则会报错
[root@localhost ~]# cd /
[root@localhost /]# ls
bin dev home lib64 mnt proc run sdb srv tmp var
boot etc lib media opt root sbin server sys usr
//虽然硬盘被卸载了,但目录还在,只是原先写在硬盘里的数据没了,再挂载回来就又有了
//可以通过mount命令查看当前硬盘的挂载情况
这里mount还有个作用就是查看ISO文件里的东西,之前我讲过压缩文件可以tar
命令解压缩打开,但.IOS就不行。
文章链接
用mount
mount -o loop ISO镜像文件 挂载点目录
设置文件系统的自动挂载
值得注意的是,挂载之后,我们重启系统,用mount命令查看挂载信息时,发现之前挂载的硬盘都没有了,这是因为这只是命令实现的操作
[root@localhost ~]# vim /etc/fstab
把最后两行添加上去,之后:wq!
保存,再reboot
重启系统,硬盘就会一直挂载再目录下了
查看磁盘使用情况
df命令
显示文件或目录占用磁盘的比例
df [选项] [文件]
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda6 xfs 12G 1.3G 11G 11% /
devtmpfs devtmpfs 477M 0 477M 0% /dev
tmpfs tmpfs 488M 0 488M 0% /dev/shm
tmpfs tmpfs 488M 7.6M 480M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sdb1 xfs 3.0G 33M 3.0G 2% /tmp
/dev/sda2 xfs 5.0G 33M 5.0G 1% /server
/dev/sda5 xfs 1014M 33M 982M 4% /home
/dev/sr0 iso9660 4.2G 4.2G 0 100% /mnt
/dev/sda1 xfs 197M 102M 96M 52% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
参数:
-a, --all 包含所有的具有 0 Blocks 的文件系统
–block-size={SIZE} 使用 {SIZE} 大小的 Blocks
-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的…)
-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
-i, --inodes 列出 inode 资讯,不列出已使用 block
-k, --kilobytes 就像是 --block-size=1024
文件-l, --local 限制列出的文件结构
-m, --megabytes 就像 --block-size=1048576
-t, --type=TYPE 限制列出文件系统的 TYPE
-T, --print-type 显示文件系统的形式
-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE