基于Linux下的硬盘分区管理、分区的加密设置以及磁盘阵列
本章节我们主要学习如何对硬盘进行分区已经分区后的管理,首先我们需要知道硬盘的一些基础知识:
(1)dev/hd0并口硬盘
/dev/sda串口硬盘/dev/cdrom /dev/sr0光驱
/dev/mapper虚拟设备
(2)系统中设备的查看
fdisk -l 真实存在的设备 1
cat /proc/partitions系统中真实识别的 2
blkid 系统中正在用或可用设备 3
df -l系统真实使用的设备 4
根据数字的缩小,设备范围也逐步减小
1.设备的挂载:
插入u盘 ,使用df进行查看查看u盘是否挂载
umount /dev/sdb1 删除挂载
mount /dev/sdb1/ /mnt/ 重新挂载设备
cd /mnt/
umount /dev/sdb1/ 不能删除挂载,(有程序正在此设备上执行)
fuser -kvm /dev/sdb1 结束设备上正在运行的程序
umount /dev/sdb1/ 成功删除挂载
umount -o ro /dev/sdb1/ /mnt/ 指定参数挂载设备挂载
umount -o remount,rw /dev/sdb1 重新挂载,修改挂载方式
2.硬盘分区管理
主分区(不能超过2T) 扩展分区 逻辑分区(三个分区最多可以共存16个)fdisk /dev/vdb 进入分区界面
对分区命令进行熟悉
a toggle abootable 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 #修改分区id
u change display/entry units
v verify the partition table
w write table to disk and exit #将当前操作写入硬盘分区表
x extra functionality (experts only)
分区的建立
第一个分区建立成功,前三个分区都可以用此方式进行建立
因为64位分区表只能建立4个分区,所以第四个分区默认为e扩展分区
然后即可在扩展分区中再进行分区,所有分区类型为 l 逻辑分区
分区完成之后,p查看分区,wq退出保存
退出保存后,若系统重读了分区表则继续实验,若没重读则执行partprobe命令 手动同步到分区表挂载分区:
首先对分区进行格式化,格式化的过程就是安装系统文件的过程,之后可进行挂载
mkfs.xfs /dev/vdb1
mkfs.xfs -f /dev/vdb1 格式化(-f强制格式化)
blikid 查看格式化后的分区
mount /dev/vdb1 /mnt 将vdb1分区挂载在/mnt下(挂载必须在格式化之后进行,临时的。开机后失效)
df -l 查看是否挂载成功
改变分区类型为gpt:
第一步:解除原有分区挂载删除原有分区(建议删除)
第二步:执行parted/dev/vdb进入parted界面,之后新建的分区则为gpt类型
分区类型改变后,不需之前扩展分区
fdisk -l 查看分区类型 (还原分区类型,按照上述方法改为msdos类型)
自动挂载分区(永久挂载)
vim /etc/fstab
/dev/vdb1 /mnt xfs defaults 0 0
设备文件 挂载点 挂载格式 挂载参数 是否检测 是否备份
mount -a 读取/etc/fstab下的文件并挂载未挂载的设备
swap分区(系统不需要挂载)
建立一个分区
t 改为swap分区(可以用l查看所有类型)
partprobe 同步到分区表
cat /proc/partitions 查看设备文件
mkswap /dev/vdb2 格式化
swapon -a /dev/vdb2 **swap分区(临时**,关机后消失)
swapon -s 查看swap分区
vim /etc/fstab
/dev/vdb2 swap swap defaults 0 0
swapon -a 读取/etc/fstab下的文件并**未**的swap分区设备(永久**)删除swap分区
vim /etc/fstab
删除 /dev/vdb2 swap swap defaults 0 0
swapoff /dev/vdb2
swapoff /dev/vdb2 关闭swap分区
fdisk /dev/vdb2 删除vdb2分区
d
2partprobe 同步分区表
分区加密
首先创建一个分区
cryptsetup luksFortmat /dev/vdb1 对设备进行加密
mount /dev/vdb1 /mnt 挂载设备(失败)
cryptsetup open /dev/vdb1
cryptsetup open /dev/vdb1 westos(文件名自己设置) 解开加密
mkfs.xfs /dev/mapper/westos 对解密的文件格式化
mount /dev/mapper/westos /mnt 挂载设备
umount /mnt 解除挂载
cryptsetup close westos 关闭解密
vim /root/diskpass 写入密码
chmod 600 /root/diskpass
cryptsetup luksAddKey /dev/vdb1/root/diskpass
vim /etc/crypttab
westos /dev/vdb1 /root/diskpass
vim /etc/fstab
/dev/fstab /mnt xfs defaults 0 0
reboot
删除加密分区
vim /etc/fstab 删除写的命令
vim /etc/crypttab
rm -fr /root/diskpass
cryptsetup close westos 关闭解密
cryptsetup luksRemoveKey/dev/vdb1磁盘阵列
首先创建分区,为fd类型
watch -n 1 cat /proc/mdstat 监控命令
打开另一个shell进行试验
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}
-C 创建 -a yes(若/dev/md0下没有md0文件则创建) -l 1(级别)-n 2(两个分区同时读写)-x 1(一个分区闲置)
mkfs.xfs /dev/md0 /mnt/
mount /dev/md0 /mnt
df
df -H 将内存大小换算适合的单位
设备管理
mdadm -D /dev/md0 查看设备状态
mdadm /dev/md0 -f /dev/vdb2 强制损坏该设备
mdadm /dev/md0 -r /dev/vdb2 删除该设备
mdadm /dev/md0 -a /dev/vdb2 添加该设备
mdadm -S /dev/md0 停止磁盘列阵
设备删除
umount /mnt 解除挂载
mdadm -S /dev/md0 停止
fdisk /dev/vdb 删除
partprobe 手动同步分区列表
3.磁盘分区设备的配额
dd if
dd if =/dev/zero of=/mnt/studentfile bs=1M count=10
截取 无线0字节 if :inputfile 输入of:outputfile 输出文件
从无线0设备中复制数据到/mnt/studentfile中,数目为10,每个大小为1M
试验:
建立一个分区/dev/vdb1
mkfs.xfs /dev/vdb1
mkfs.xfs /dev/vdb1 格式化分区
mount -o usrquota /dev/vdb1 /mnt **参数
使用mount 查看参数是否**(最后一行)
quotacheck -u /dev/vdeb1
quotaon -u /dev/vdb1(类型不是xfs的时候需要使用这两个命令)参数**后
edquota -u student
Disk quotas for user student (uid 1000):Filesystem blocks soft hard inodes soft hard
/dev/vdb1 1024 0 2016 1 0 0
blocks显示硬件真实容量(改变对实际无影响) soft(软件)上限容量 hard(硬件容量)
inodes个数 sofe建立多少文件会警告hard 最多可建立多少文件
切换普通用户
dd if /dev/zero of /mnt/studentfile bs=1M count
超出限度则不能保存数据
vim /etc/fstab
/dev/vdb1 /mnt/ xfs defaults,usrquota 0 0 开机自动**参数删除
vim /etc/fstab
umount /mnt
fdisk /dev/vdb
删除分区
lvm的建立lvm使硬盘无线扩容(把物理卷组分离出来)
pv 物理卷(被处理过的物理分区)
vg 物理卷组
pe lv0的最小单位试验
watch -n 1 'pvs;ngs;lvs;f -h /mnt'(监控)
创建三个分区输入(1G)
t
8e改变系统分区类型
partprobe 同步分区表
pvcreate /dev/vdb1
vgcreate vg0 /dev/vdb1
lvcreate -L 300M -n lv0 vg0(300M是分离出来的数据大小,不能超出原有硬件设备大小)(lv0是lvm的名字,自己命名)
mkfs.xfs /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt/
mapper 存放虚拟设备,监控时的/dev/mapper/vg0-lv0和/dev/vg0-lv0一致
使用ll进行查看
ll /dev/vg0/lv0
ll /dev/mapper/vg0-lv0 (两者一致)设备拉伸
1.直接扩大设备(是扩大到的容量,属于热拉伸,直接在原有容量上进行扩大)
lvextend -L 500M /dev/vg0/lv0 ## 扩大lv0到500M
xfs-growfs /dev/vd0/lv0
xfs-growfs /dev/vd0/lv0 ## 扩大系统设备到500M
如果想要扩大的容量,vg0不足以提供,则需要扩大vg0
pvcreate /dev/vdb2 ##第二分区创建pv
vgextend vg0 /dev/vdb2
vgextend vg0 /dev/vdb2 ##添加物理卷/dev/vdb2的容量到vg0下
lvextend -L 2000M /dev/vg0/lv0 ## 扩大lv0到2000M
xfs_growfs /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0 ## 重新扩大系统设备到2000M
拉伸系统容量(系统分区类型为ext4类型)
mkfs.ext4 /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt/
mount
lvextend -L 2500M /dev/vg0/lv0
resize2fs /dev/vg0/lv0对系统容量进行缩减(ext4)
umont /mnt/ 卸载
e2fsck -f /dev/vg0/lv0 ##进行系统容量的查看,安全缩减
resize2fs /dev/vg0/lv0 1000M ##进行设备容量的缩减
mount /dev/vg0/lv0 /mnt/ ##挂载(执行缩减命令,进行刷新)
lvreduce -L 1000M /dev/vg0/lv0##进行系统容量的缩减
对有占有容量的硬盘分区进行移出
pvmove /dev/vdb1 /dev/vdb2 将vdb1的数据转移到vdb2中(没有占有容量则进行下面命令直接移出)
vgreduce vg0 /dev/vdb1 ## 将vdb1从vg0中移出
pvremove /dev/vdb1 ##将设备vdb1移出lv0的快照
前提:保证设备有足够容量给予快照。如果么有。则需要添加设备
pvcreate /dev/vdb1
vgextend vg0 /dev/vdb1
正式对设备建立快照
touch /mnt/file{1..3} ##对挂载设备的目录建立文件
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##建立快照,容量50M
mount /dev/vg0/lv0backup /mnt/
mount /dev/vg0/lv0backup /mnt/ ##挂载快照,执行操作之后都在快照上进行
rm -rf /mnt/*umount /mnt/ ##卸载快照
lvremove /dev/vg0/lv0backup ##删除快照
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##重新建立快照
mountmount /dev/vg0/lv0backup /mnt/ ##挂载快照
ls /mnt/ ##查看,文件依旧存在
df 对系统所有挂载情况进行查看
lvs 对分区设备挂载情况进行查看
对进行拉伸设备进行删除
umount /mnt/
lvremove /dev/vg0/lv0backup ##删除快照
lvremove /dev/vg0/lv0 ##删除lv0
vgremove vg0 ##删除vg0
pvremove /dev/vdb{1..2} ##
pvremove /dev/vdb{1..2} ##移出设备