磁盘管理
1.磁盘有关知识简介
mpt :分区表 硬盘有效性标识
mbr:分区方式 ,最多只能有四个主分区
扩展分区 :扩展分区是一个容器 mbr方式 每个分区最大2Tb
逻辑分区 :容器里面的 gpt GUID 磁碟分割表( GUID Partition Table ,缩写: GPT)其含义为“全局唯一标识磁盘分区表” 与 MBR 最大 4 个分区表项的限制相比, GPT 对分区数量没有 限制 Windows 最大仅支持128 个 GPT 分区 GPT 可管理硬盘大小达到了 18EB
swap :交换分区 换空间或交换区是磁盘驱动器上的空间 , 用作当前未使用部分内存的溢出。这样 ,系统就能在主内存中留出空间用于储存当前正在处理的数据 , 并在系统面临主内存空间不足的风险时提供应急溢出
文件系统:
ntfs //linux
ext4 //是 Red Hat Enterprise Linux 6 的标准文件系统。它非常强大可靠 , 具有多项可以提高现代工作量处理性能的功能
ext2 //是常用于 Linux 中的较旧的文件系统。它简单可靠 ,非常适合小型存储设备 , 但是效率低于ext4
vfat //支持包括一系列相关文件系统 ( VFAT/FAT16,FAT32 ), 这些文件系统针对较旧版本的 Microsoft Windows 开发 , 在大量的系统和设备上受支持,适用linux和windows
fat //微软的版权,不是开源的,每台手机都有,需要给微软交版权费
xfs //在 Red Hat Enterprise Linux 7 的标准文件系统其具备数据完全、性能稳定、扩展性强( 8eb-1byte ) 、传输速率高 ( 7G/s )
- mpt 分区表,mbr与gpt的解释:
1)mrb用于win平台 ,gpt主要用于mac(苹果)
2)MBR分区表与GPT分区表的关系: 与支持最大卷为2TB(Terabytes)并且每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的MBR磁盘分区的样式比,GPT磁盘分区样式支持最大卷为18 EB(Exabytes)并且每磁盘的分区数没有上限,只受到操作系统限制(由于分区表本身需要占用一定空间,最初规划硬盘分区时,留给分区表的空间决定了最多可以有多少个分区,IA-64版Windows限制最多有128个分区,这也是EFI标准规定的分区表的最小尺寸)。与MBR分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT分区磁盘有备份分区表来提高分区数据结构的完整性。
2.磁盘查看命令
fdisk -l ##系统中的所有磁盘设备(看到的不一定是能用的,因为没有文件系统)
*Fdisk是IBM的老牌分区工具,支持绝大多数操作系统,几乎所有的Linux操作系统都默认装有fdisk;包括在Linux Rescue模式下依然能够使用。
*fdisk是基于MBR的分区工具(是当年IBM设计给PC机来使用的),所以如果需要使用GPT,则无法使用fdisk进行分区
*只有超级用户权限(如root,Uid=0的;可以用在命令行中输入id来查询)才可以执行fdisk,因为命令都是在/sbin下面,需要特权级的用户
df -TH ##系统正在挂载的磁盘设备
blkid ##系统可以挂载的磁盘设备id,(磁盘设备不一定都可以被挂载)(能看见的都是有文件系统的)
后面两个查看到的一定是可以使用的
使用fdisk -l 查看到的信息
3.分区划分:fdisk
[root@localhost ~]# fdisk /dev/vdb
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.
Command (m for help): m ##获得帮助
Command action
a toggle a bootable flag ##设置可引导标记
b edit bsd disklabel ##修改bsd的磁盘标签
c toggle the dos compatibility flag ##设置DOS操作系统兼容标记
d delete a partition ##删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types ##列出系统可用分区类型,其中82为Linux swap分区,83为Linux分区
m print this menu ##显示帮助信息
n add a new partition ##新建分区
o create a new empty DOS partition table ##创建一个新的空白的DOS分区表
p print the partition table ##显示分区
q quit without saving changes ##退出,并不保存修改
s create a new empty Sun disklabel ##创建一个新的空白的Sun磁盘标签
t change a partition's system id ##改变一个分区的系统号码(比如把Linux Swap分区改为Linux分区)
u change display/entry units ##改变显示记录单位
v verify the partition table ##对磁盘分区表进行验证
w write table to disk and exit ##保存更改到分区表中
x extra functionality (experts only)
Command (m for help): n ##新建分区
Partition type:
p primary (1 primary, 0 extended, 3 free) ##分区类型为主分区
e extended ##分区类型为扩展分区
Select (default p): p
Partition number (2-4, default 2): 2 ##主分区id
First sector (206848-20971519, default 206848): ##此分区的起始位置
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-20971519, default 20971519): +200M ##分区大小
Partition 2 of type Linux and of size 200 MiB is set
Command (m for help): wq ##保存并退出,只输入q则表示放弃更改退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]#
partprobe ##同步分区表
cat /proc/partprobe ##查看系统识别的分区信息
mkfs.xfs /dev/vdb1 ##格式化
##格式化的作用,对硬件的操作,为了装软件,这里是为了装文件系统
mount /dev/vdb1 /mnt ##临时挂载
mount -a ##使挂载策略生效(all 所有的)
df ##查看是否生效
vim /etc/fstab ##永久挂载
#编写格式:
##挂载的文件 挂载点 文件系统类型 defaults(默认,mountpoint) 0 0 (第一个不检测,第二个不备份)
device mountpoint ftype defaults(mountpoint) 0 0
/dev/vdb1 /mnt xfs defaults 0 0
mount -a ##使/etc/fastab中记录的挂载生效
vim /etc/fstab 设置永久挂载:
- 注意:
在退出时,要看wq之后系统反馈是什么,保存退出后,若显示下图,一定要手动partprobe重读分区表,所以,也可以养成每次退出都手动重读,保证准确率
删除分区时
先使用umount命令解除挂载
- 注:
- 当挂载点被使用时,无法解除挂载,那么 fuser -vm /mnt 查看mount进程 ,fuser -kvm /mnt 直接结束进程,然后进行解除挂载
解除挂载之后,使用fdisk /dev/vdb命令 删除分区
cat /proc/partitions发现vdb1已经删除
4.设定分区方式,将mkdocs 改为 gpt格式
##更改之前需要把正在使用的分区关闭,才可以进行更改
partd /dev/vdb
..)help
..)mklabel
..? gpt
..)quit
partprobe ##从读分区表
cat /proc/partitions
mkfx.xfs /dev/vdb1
##若提示你需要强制覆盖 加上 -f 参数(强制)
mount /dev/vdb1 /mnt
df ## 查看
blkid ##发现gpt下,多出了很多信息,PARTUUID=...
//最后的信息一定要仔细看,可能会让你重新读分区表或怎么样,这里的提示生级可以忽略
5.添加swap分区
fdisk /dev/vdb ##添加一个分区
//注意,在t修改之后,要用l开查看你所要使用的分区类型,这里查看到是14
![](/qrcode.jpg)
6.更改gpt下的swap 为mkdos下的swap
##gpt改变之前一定保证系统没有被利用,不然系统会问题,因为还有进程在用,改变会出错
umount
swapoff
parted /dev/vdb
..)mklabel
..)msdos
..)quit
##查看退出时系统提示信息
fdisk /dev/vdb
..)n---->p---->...(+size)
..)t---->l---->82---->wq
partprobe
mkswap /dev/vdb1
swapon -a /dev/vdb1 ##激活新交换区
swapon -s ##显示当前交换区的状态
swapoff /dev/vdaN ##停用该特定交换区
##启动自动激活swap ,还是fstab
#设置/etc/fstab
/dev/vdb swap swap 0 0 ##(系统自己会用swap,不用挂载点)
//这里查看到需要的分区类型是82,不同的分区方式读的不同,一定要按l仔细查看后选择
7.用文件来添加swap分区
dd if输入=/dev/zero of输出=/swapfile bs一块大小=1M count一共多大=1000 ##截取/swapfile
mkswap /swapfile ##格式化为swap类型
swapon -a /swapfile ##临时添加到swap里
swapon -s ##查看
swapon -a ... -p number ##挂上,并且-p设定优先级number表示优先级
vim /etc/fstab
man swapon
/swapfile swap swap defaults,pri=n 0 0 #pri优先级
然后挂上
首先 man swapon
//发现 -p参数可以改变分区的优先级
添加文件配置:
8.删除swap分区
vim /etc/fstab ##删除此文件中添加的swap行
swapoff /swapfile ##断开swap文件链接
swapoff /dev/vdb1 ##断开swap磁盘链接
rm -rf /swapfile ##删除文件
fdisk /dev/vdb ##删除磁盘分区
partprobe ##同步分区表
9.磁盘加密
1.磁盘加密与取消
对文件系统加密
这样,即使破坏了文件系统,文件也不会显示出来,就变成加密字符,谁也用不了了,只能暴力破解。
创建设备,安装加密层,打开加密层格式化解密后设备
fdisk /dev/vdb ##创建新分区
cryptsetup luksFormat /dev/vdb1 ##加密
//cryptsetup 后面的参数自动补不齐,手敲,,大写YES确定,小写无效
##再次打开时,需要open /dev/vdbn fsname ,里面的close 也需要自己手动输入 fsname
cryptsetup open /dev/vdb1 100jkyuanxudong ##打开加密的分区
mkfs.xfs /dev/mapper/100jkyuanxudong ##格式化分区为xfs格式
mount /dev/mapper/100jkyuanxudong /mnt ##挂载
##不能直接挂载/dev/vdb1,会提示该分区为加密分区,无法挂载,必须open后才可以挂载。
//不管名字,进入的是同一个地方
2.加密磁盘的永久挂载
vim /etc/crypttab
"解密后设备管理文件 设备 加密字符存放文件"
redhat /dev/vdb1 /root/lukspsfile
vim /root/lukspsfile
chmod 600 /root/lukspsfile ##这是保证文件的安全性
cryptsetup luksAddKey /dev/vdb1 /root/lukspsfile
##luksAddKey 注意两个字母大写,输入的是/dev/vdbn 的密码
vim /etc/fstab
/dev/mapper/100jkyuanxudong /mnt xfs defaults 0 0
##fstab里面的文件名一定要和crypttab的一样!!
reboot ##重启测验是否永久挂载
reboot之后:
3.加密清除
vim /etc/fstab ##清除开机自动挂载
vim /etc/crypttab ##清除解密配置文件
rm -fr /root/lukspasswd ##删除密码存放文件
umount /mnt ##取消挂载
cryptsetup close /dev/mapper/redhat ##关闭加密磁盘
mkfs.xfs /dev/vdb1 -f ##格式化加密磁盘
//成功删除
//重新挂载