系统分区管理
df <= blkid < cat /proc/partitions < fdisk -l
df ##查看系统正在使用的设备
blkid ##查看系统里面可以使用的设备
cat /proc/partitions ##查看系统识别的设备
fdisk -l ##查看硬盘
df -h ##2的n次方,1024
df -H ##10的n次方 1000 -h比-H统计出来的数小,但是精确
在真机里做以下实验:
硬盘的挂载卸载
先插入U盘,用df查看有/dev/sdb1 –>u盘
[root@foundation68 ~]# umount /dev/sdb1/ ##卸载u盘
[root@foundation68 ~]# mount /dev/sdb1 /mnt/ ##将u盘挂载到/mnt下
[root@foundation68 ~]# cd /mnt
再打开一个shell
[root@foundation68 ~]# umount /dev/sdb1/ ##卸载u盘
[root@foundation68 ~]# mount /dev/sdb1 /mnt/ ##将u盘挂载到/mnt下
[root@foundation68 ~]# cd /mnt
另开一个shell
[root@foundation68 ~]# umount /dev/sdb1/
umount: /mnt: target is busy. ##u盘正在运行,卸载不掉
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@foundation28 ~]# fuser -kvm /dev/sdb1/ ##杀死后台运行
USER PID ACCESS COMMAND
/dev/sdb1: root kernel mount /mnt
root 9277 ..c.. bash
[root@foundation68 ~]# umount /dev/sdb1 ##现在就可以卸载了
切换到第一个shell
[root@foundation68 mnt]# Killed ##进程已经被杀死
[root@foundation68 ~]# fuser -vm /dev/sdb1/ ##查看
USER PID ACCESS COMMAND
/dev/sdb1: root kernel mount /run/media/kiosk/00A4-2CBF
指定设备激活或更改
[root@foundation68 ~]# mount -o ro /dev/sdb1 /mnt/ ##mount -o添加参数
[root@foundation68 ~]# touch /mnt/file1
touch: cannot touch ‘/mnt/file1’: Read-only file system
用mount查看为ro不能建立文件只读
[root@foundation68 ~]# umount /dev/sdb1
[root@foundation68 ~]# mount -o rw /dev/sdb1 /mnt/
用mount查看为rw可以建立文件为可写
划分分区
以下实验步骤需在虚拟机server里完成:
[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.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x55916b15.
Command (m for help): m ####获得帮助
Command action
a toggle a bootable 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)
Command (m for help): n ##创建分区
Partition type: ##创建分区类型
p primary (0 primary, 0 extended, 4 free) ##主分区
e extended ##扩展分区
Select (default p): p
Partition number (1-4, default 1): 1 ##确定主分区id
First sector (2048-20971519, default 2048): ##分区起始块的位置,默认
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M ##分区结束位置,用+大小的方式指定
Partition 1 of type Linux and of size 100 MiB is set
重复以上步骤到第四个分区:
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): ##显示分区表信息
Using default response e
Selected partition 4
First sector (616448-20971519, default 616448): ##默认回车
Using default value 616448
Last sector, +sectors or +size{K,M,G} (616448-20971519, default 20971519): ##默认回车
Using default value 20971519
Partition 4 of type Extended and of size 9.7 GiB is set
Command (m for help): p ##显示分区表信息
Command (m for help): wq ##保存分区策略并退出fdisk界面
[root@localhost ~]# partprobe ##手动同步分区列表
[root@localhost ~]# cat /proc/partitions ##查看设备是否被系统识别
格式化挂载:
[root@localhost ~]# mount /dev/vdb1 /mnt/ ##无法挂载
[root@localhost ~]# mkfs.xfs /dev/vdb1 ##格式化设备,在设备上安装文件系统xfs
[root@localhost ~]# blkid ##查看可用设备,并且可以看到被格式化的
[root@localhost ~]# mount /dev/vdb1 /mnt/ ##可以挂载/dev/vdb1
[root@localhost ~]# df ##查看/dev/vdb1被挂载
注意:不能格式化/dev/vdb4,它是一个容器,否则整个硬盘将缺少更多空间使用。
GPT分区方式
解决一个分区不能超过2tb
[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): d ##删除1-4的硬盘
Partition number (1-4, default 4): 1
Partition 1 is deleted
Command (m for help): d
Partition number (2-4, default 4): 2
Partition 2 is deleted
Command (m for help): d
Partition number (3,4, default 4): 3
Partition 3 is deleted
Command (m for help): d
Selected partition 4
Partition 4 is deleted
Command (m for help):wq
[root@localhost ~]# umount /mnt ##解除挂载,不然会有报错
[root@localhost ~]# parted /dev/vdb
GNU Parted 3.1
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)mklabel ##更改分区方式
New disk label type? ##分区类型
aix amiga bsd dvh gpt loop mac msdos pc98 sun
New disk label type? gpt
Warning: The existing disk label on /dev/vdb will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? yes
(parted)quit ##退出保存
Information: You may need to update /etc/fstab.
[root@localhost ~]# fdisk -l
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt ##出来gpt说明更改分区方式成功
[root@localhost ~]# fdisk /dev/vdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
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): n
Partition number (1-128, default 1): 1
First sector (34-20971486, default 2048): ##默认回车
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971486, default 20971486): +100M
Created partition 1
Command (m for help): n
Partition number (2-128, default 2): 2
First sector (34-20971486, default 206848): ##默认回车
Last sector, +sectors or +size{K,M,G,T,P} (206848-20971486, default 20971486): +100M
Created partition 2
Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
# Start End Size Type Name
1 2048 206847 100M Linux filesyste
2 206848 411647 100M Linux filesyste
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
再转换到dos分区方式:
[root@localhost ~]# parted /dev/vdb
[root@localhost ~]# fdisk -l
Disk label type: dos ##类型更改为dos
永久挂载硬盘:
先用df看有没有挂载,有的话需要先卸载
[root@localhost ~]# vim /etc/fstab ##编写挂载文件
写入:/dev/vdb1 /mnt xfs defaults 0 0
[root@localhost ~]# mount -a ##自动全部挂载
[root@localhost ~]# df
swap分区挂载
[root@localhost ~]# fdisk /dev/vdb ##新建一个硬盘
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
First sector (206848-20971519, default 206848):
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-20971519, default 20971519): +1000M
Partition 2 of type Linux and of size 1000 MiB is set
Command (m for help): t ##更改名字
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): l ##查看
82 Linux swap / So
Hex code (type L to list all codes): 82 ##更改名字编号
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): wq ##退出保存
[root@localhost ~]# partprobe ##手动同步
[root@localhost ~]# cat /proc/partitions
253 18 1024000 vdb2
[root@localhost ~]# mkswap /dev/vdb2 ##格式化
mkswap: /dev/vdb2: warning: wiping old xfs signature.
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=d6dfca53-27f8-46ba-b86b-dcae3541957d
[root@localhost ~]# swapon -a /dev/vdb2
[root@localhost ~]# swapon -s ##查看
Filename Type Size Used Priority
/dev/vdb2 partition 1023996 0 -1
[root@localhost ~]# vim /etc/fstab ##永久挂载
/dev/vdb2 swap swap defaults 0 0
[root@localhost ~]# swapon -a ##没有报错就成功了
[root@localhost ~]# fdisk -l
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux
/dev/vdb2 206848 2254847 1024000 82 Linux swap / Solaris ##名字有变化了
删除/dev/vdb2
[root@localhost ~]# vim /etc/fstab ##删除里面/dev/vdb2的永久挂载
[root@localhost ~]# swapoff /dev/vdb2 ##关闭/dev/vdb2
[root@localhost ~]# fdisk /dev/vdb
Command (m for help): d
Partition number (1,2, default 2): 2 ##删除
[root@localhost ~]# partprobe
[root@localhost ~]# fdisk -l
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux
磁盘加密
[root@localhost ~]# fdisk /dev/vdb
[root@localhost ~]# partprobe
[root@localhost ~]# cryptsetup luksFormat /dev/vdb1 ##加密
WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.
Are you sure? (Type uppercase yes): YES ##大写
Enter passphrase: westos2018
Verify passphrase: westos2018
[root@localhost ~]# mount /dev/vdb1 /mnt
mount: unknown filesystem type 'crypto_LUKS' ##挂载不上
[root@localhost ~]# ls /dev/mapper/
control
[root@localhost ~]# cryptsetup open /dev/vdb1 dmf(自定义,解密后的形态) ##打开加密
Enter passphrase for /dev/vdb1: ##输入密码
[root@localhost ~]# ls /dev/mapper/
control dmf
[root@localhost ~]# mkfs.xfs /dev/mapper/dmf ##格式化
[root@localhost ~]# mount /dev/mapper/dmf /mnt/ ##打开加密后可以挂载
[root@localhost ~]# touch /mnt/file{1..10}
[root@localhost ~]# ls /mnt
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
[root@localhost ~]# umount /mnt ##卸载
[root@localhost ~]# df ##查看/mnt没有挂载
[root@localhost ~]# cryptsetup close dmf ##关闭解密
[root@localhost ~]# ll /dev/mapper ##原始文件
[root@localhost ~]# mount /dev/vdb1 /mnt ##磁盘加密不能挂载
[root@localhost ~]# mount /dev/mapper/dmf /mnt ##磁盘加密不能挂载
开机自动加密挂载:
[root@localhost ~]# vim /root/diskpass
##westos2018 添加密码钥匙
[root@localhost ~]# chmod 600 /root/diskpass ##给权限
[root@localhost ~]# cryptsetup luksAddKey /dev/vdb1 /root/diskpass ##将加密钥匙给/dev/vdb1
Enter any passphrase:
[root@localhost ~]# vim /etc/crypttab
##写入:dmf /dev/vdb1 /root/diskpass
[root@localhost ~]# vim /etc/fstab
##删除之前写的 写入:/dev/mapper/dmf /mnt xfs defaults 0 0
[root@localhost ~]# df ##查看此时没有挂载上
[root@localhost ~]# reboot ##重启
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3731544 6742356 36% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12760 472172 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/dmf 1018540 32928 985612 4% /mnt ##开机后自动挂载
[root@localhost ~]# cat /var/log/boot.log ##重启后界面的解码过程
[ OK ] Found device /dev/mapper/dmf.
Mounting /mnt...
[ OK ] Mounted /mnt.
加密清除
[root@localhost ~]# vim /etc/fstab ##删除写入的东西
[root@localhost ~]# vim /etc/crypttab ##删除写入的东西
[root@localhost ~]# rm -fr /root/diskpass
[root@localhost ~]# mkfs.xfs /dev/vdb1
mkfs.xfs: cannot open /dev/vdb1: Device or resource busy ##出现这种情况说明没有卸载
[root@localhost ~]# umount /mnt
[root@localhost ~]# cryptsetup close dmf ##关闭磁盘加密
[root@localhost ~]# mkfs.xfs /dev/vdb1 -f ##强行格式化
注意:
1.每次实验的时候要先用df查看是否挂载,以免实验出错
2.编写脚本一定要认真,不然会出现很多问题
3.设置密码时,密码要大于8个字节,密码强度要高一些
磁盘阵列
[root@localhost ~]# fdisk /dev/vdb ##创建三个分区,分区标示为raid
[root@localhost ~]# watch -n 1 cat /proc/mdstat ##监控
再连接一个shell
[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3} ##制作双磁盘一个闲置
##-C 创建/dev/md0;-a如果/dev/md0不存在,自动建立;-l 1 给它一个级别;-n 2 有两块设备;-x 1 读的快)
[root@localhost ~]# mkfs.xfs /dev/md0
[root@localhost ~]# mount /dev/md0 /mnt
[root@localhost ~]# df
[root@localhost ~]# df -H
设备管理
[root@localhost ~]# mdadm -D /dev/md0 ##查看raid状态
[root@localhost ~]# mdadm /dev/md0 -f /dev/vdb2 ##损坏硬盘
mdadm: set /dev/vdb2 faulty in /dev/md0
[root@localhost ~]# mdadm /dev/md0 -r /dev/vdb2 ##删除指定硬盘
[root@localhost ~]# mdadm -D /dev/md0
[root@localhost ~]# mdadm /dev/md0 -a /dev/vdb2 ##添加指定硬盘
[root@localhost ~]# mdadm -D /dev/md0
设备删除
[root@localhost ~]# umount /mnt
[root@localhost ~]# mdadm -S /dev/md0 ##停止使用
[root@localhost ~]# fdisk /dev/vdb ##删除分区 d 1
[root@localhost ~]# partprobe
总结:
1.需要格式化/dev/md0
2.创建三个分区,分区标示要为raid
3.对比损坏硬盘和添加硬盘的个数