磁盘的分区与挂载
在实操之前,我们先来了解一下关于MBR和GPT两种类型的分区方式。
1.fdisk分区工具主要是使用MBR(不支持4T以上)分区方式。
①、分区类型分为:主分区p(1-4),逻辑分区(5以上)
②、逻辑分区必须在扩展分区(e)上,而扩展分区是不可用的,它只是用来存储逻辑分区,真正存放数据的是主分区和逻辑分区。
③、主分区主要用来启动操作系统,/boot(操作系统内核以及在引导时使用到的文件)一般放在主分区。
2.而GPT(支持4T以上)分区方式不限制主分区数量,gdisk分区工具才可以使用这种分区方式。
一. fdisk分区工具的使用
例子:(对未使用的磁盘进行分区):
①先在虚拟机上添加一块磁盘(虚拟机—设置—添加—磁盘—保持默认下一步—完成),最后可以看见虚拟机设置界面出现了新加的磁盘2(建议在关机下设置)。
②、对刚刚新加的磁盘分区
(1)先使用ls 加磁盘类型查看有什么磁盘
[[email protected] ~]# ls
/dev/sd/dev/sda /dev/sda1 /dev/sda2 /dev/sdb*
(2)可以看到我们新建的磁盘sdb,使用fdisk选择sdb进行分区。
[[email protected] ~]# fdisk /dev/sdb
ps:常用参数
l:显示分区类型
m:帮助菜单
n:添加新磁盘
p:显示分区表
t:改变分区类型
w:写入分区信息,保存并退出
q:退出不保留
命令(输入 m 获取帮助):(我们接着输入p,查看一下分区表,正常情况下没有分区)
ls查看我们刚刚是否创建好了分区
[[email protected] ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
(这里多出了一个sdb1,就是我们刚刚创建好的分区)
ps:
二、使用分区(磁盘挂载)
例子:(使用sdb1新分区)
①先格式化新分区
方法一:[[email protected] ~]# mkfs.ext4 /dev/sdb1
方法二(我们使用的是这个方法):
[[email protected] ~]# mkfs.xfs /dev/sdb1
当我们看到realtime =none ,就代表已经好了,但是有一些小伙伴可能会出现需要加上-f,强制覆盖,对已经存在的文件系统的分区强制格式化。
②挂载新分区
[[email protected] ~]# mkdir /sdb1(用mkdir创建个挂载点,在根目录下创建一个sdb1)
[[email protected] ~]# mount /dev/sdb1 /sdb1/(用mount将/dev/sdb1挂载到/sdb1下)
[[email protected] ~]# df -h(最后我们可以使用df -h查看挂载信息)
(我们可以发现最后一行有我们刚刚挂载好的sdb1,这就是成功了。)
③使用新挂载好的分区
[[email protected] ~]# cd /sdb1/(用cd命令进入sdb1)
[[email protected] sdb1]# ls (ls查看,一般情况会发现没有内容)
[[email protected] sdb1]# cp /bin/bash ./ (我们可以用cp加文件路径,将其文件拷贝到此分区下)
[[email protected] sdb1]# ls (这时我们再用ls查看会发现,多了我们刚刚拷贝的文件)
bash
PS:拷贝的文件的话,我们可以先用 vi scanhost.sh创建一个脚本文件,如果不知道该输入什么内容,可以将以下内容输入:
写完后我们点击Esc键,然后:wq保存退出就好了。
三、umont 卸载问题
例子:(用umont将创建的sdb1卸载)
[[email protected] sdb1]# umount /dev/sdb1
我们会发现,卸载会报错,是因为我们还处于sdb1下。
解决方法:
1.们可以使用lsof /sdb1 查看当前进程,记下bash PID ,然后使用kill -9 加PID,杀死进程。
但是有些人会出现报错:
2.别担心,我们还可以用cd,直接退回家目录下,然后再使用umount /dev/sdb1,将其卸载。
ps:umount 可以加挂载点卸载,也可以加设备路径卸载。
四.实现开机自动挂载
方法一:(建议把之前挂载的sdb1删了后重新创建分区sdb1)
1.[[email protected] sdb1]# vi /etc/fstab(打开/etc/fstab这个文件)
2.在最后一行写上 /dev/sdb1 /sdb1 xfs defaults 0 0(如图)
3.然后单击Esc键,:wq保存退出。
注意,内容一定不能输错,否则会导致重启不了以及挂载无效。
4.这时候我们使用df -h 查询sdb1的挂载情况发现没有内容,如果有那么就是之前挂载过的sdb1没有删。
5.这时候,我们可以选择重启让刚刚挂载的sdb1生效,又或者使用mount -a命令。
[[email protected] sdb1]# mount -a(不用重启,自动挂载/etc/fstab中还没有挂载上的文件。)
[[email protected] sdb1]# df -h(这时候在使用df -h 查看,会发现关于sdb1的挂载信息就有了)
注:如果通过重启让刚刚挂载的sdb1生效,可能会导致重启不了,所以我们尽量使用mount -a 命令。一定要在查看中看见有sdb1的挂载信息才代表挂载成功,挂载不成功重启也会导致重启失败。
方法二:使用UUID方式挂载
1.先输入blkid命令
[[email protected] sdb1]# blkid
2.输入echo直接编辑
[[email protected] sdb1]# echo “UUID=31a1048e-2749-4bbb-9093-23bdcd99ba03 /sdb1 xfs defaults 0 0” >> /etc/fstab
ps:
/dev/sdb1 要挂载的文件
/sdb1 挂载点
xfs 文件系统类型
defaults 挂载选项
0 是否备份(0不备份,1备份)
0 是否检测(0不检测,1检测)
UUID是独一无二的
五.gdisk磁盘分区工具
(和fdisk差不多,但是需要安装才可以使用)
输入gdisk /dev/sdb
操作基本和常用参数和fdisk一样
注:①打开帮助菜单输入的是?
②有一个code那个选项我们可以选择输入L,打开文件系统区,看见常用的8300,linux文件系统,这里我们保持默认就好了。
③接着格式化(和fdisk的一样),然后就可以用了。
PS:gdisk主要是用来划分容量大于4T的硬盘。