系统分区和文件系统
存储是每个计算机系统的基本需求,redhat linux提供了一些强大的工 具,他们能在大量的场景中管理多种类型的存储设备
1.设备的查看
fdisk ##是用于管理磁盘分区的实用程序
fdisk -l ##列出系统中磁盘分区的信息
blikid ##列出系统中可以使用的设备id
df ##查看系统中正在使用的设备信息
cat /proc/partitions ##查询系统中被系统是别的的设备
df -h ##发现查询系统中被挂载的设备信息(二机制基数1M=1024k)
df -H ##发现查询系统中被挂载的设备信息(十进制基数1M=1000k)
/dev/sda ## s=sate串口硬盘 d=disk a=a第一块
/dev/sdb1 ## s:sata串口硬盘 d:disk硬盘 b:第一串口1:第一块硬盘
/dev/vda ## 虚拟硬盘
/dev/cdrom ## 光盘驱动
2.系统普通分区
开机启动硬盘记录在主板信息上,磁盘由磁道和磁头组成(磁头损坏无法使用)
mbr主引导记录446个字节,mbr主分区4个,拓展分区16个,gpt分区最多128个
mpt主分区表64个字节
硬盘的有效性标示”55aa”两个字节
一个主分区占用16个字节记录分区信息
一块硬盘上如果用mbr的分区方式最多可以存在4个主分区
主分区(P)
扩展分区(E)
逻辑分区(L)
文件系统
ext xfs linux系统常用 ntfs fat windows系统常用
(2)系统的普通分区
fdisk -l 列出系统中磁盘使用信息,/dev/vda1正在被使用,/dev/vdb没有被使用,我们拿/dev/vdb来做实验
对/dev/vdb1进行分区,第一步fdisk /dev/vdb 进入分区交互界面
输入命令help查询各个参数:
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)
输入n进入新建程序
选择命令p表示主分区,最多四个,e代表扩展分区,最多16个分区(mbr分区)
选择主分区(默认主分区,当三个主分区使用后默认为扩展分区),输入命令p后,1-4表示主分区1-4,选择第一个分区(主分区id为1);接下来是此分区起始位置 ,不选,分区结束位置输入+xxxK,M,G;选择100M,即+100M
输入p查看分区信息
完成后wq(如果安q表示放弃更改退出)退出保存,propaobe同步分区表
mkfs.xfs /dev/vdb1格式化/dev/vdb1,l临时挂载到/mnt下进行使用
永久挂载使用需要编辑配置文件:/etc/fastab ,使用man fstab 得知第一列写入设备名字,第二列是挂载点,第三列是文件系统类型,第四列挂载点与文件系统的联系,第五列dump备份,0表示不备份;第六列表示fsck,0表示不检查
完成后,mount -a执行该文件
3.文件系统:
给新建普通分区/dev/vdb2建立xfs文件系统:mkfs.xfs /dev/vdb2
mk 连续按下两次tab键,会发现xfs,fat,ext…等文件系统,选择xfs文件系统
mount挂载命令(umount取消挂载)
mount /dev/vdb2 /tmp ##将/dev/vdb2挂载到/tmp下;
umount /dev/vdb1 | umount /mnt 取消/mnt下挂载的设备/dev/vdb1
当取消挂载/dev/vdb2在/tmp上的挂载时,发现提示说设备正忙,这是因为在另一个shell中开启工作目录在tmp中的原因;根据提示
lsof /tmp | fuser -vm /tmp ##查看正在使用挂载的进程
fuser -k(v|m) /tmp | kill -9 pid ##结束正在使用挂载的所有进程
取消/dev/vdb2在/tmp下的挂载,执行命令:mount -o noatime /dev/vdb2 /tmp
新建/tmp/file ,stat查看file时间属性,过几秒后在cat 查看file,再用stat查看法ile文件时间属性,会发现两次时间一致。
执行命令:mount -o remount,ro /dev/vdb2 /tmp;vim /tmp/file进行编辑,发现无法保存退出,这是因为再不取消挂载的情况下重新赋予//dev/vdb2只读(ro)权限,包括新建文件,删除文件等等
4.swap分区
Swap交换分区,换空间或交换区是磁盘驱动器上的空间,用作当前未使用的部分内存的溢出/这样,系统就能在主内存中留出空间用于储存当前正在处理的数据,并在面临主内存空间不足的风险时提供应急溢出
(1)创建swap分区
fdisk /dev/vdb ;n;p;3;[enter];+400M;t;3;l;82;p;wq;partprobe
同普通分区的建立,不同的是t要修改分区功能,l查询分区功能输入相应的代码,最后保存退出,partprobe同步分区。
完成这些还需要对其进行格式化
mkswap /dev/vdb3 ##格式化swapfenqu
swapon -a /dev/vdb3 ##激活swap分区
swapon -s ##显示查看swap分区信息
swapoff /dev/vdb3 ##关闭swap分区
swapon -s ##显示查看swap分区信息
以上设定都是临时的,永久设定同普通分区,编辑配置文件/etc/fatsb
编辑:/dev/vdb3 swap swap defaults 0 0
保存退出后,swapon -a 读取文件,激活swap分区;swapon -s查看swap分区信息,swapoff /dev/vdb3关闭swap分区
5.设定分区方式为gpt
disk lable type :dos 最大不过两tb,gpt<=18eb,xfs<=8eb
命令:
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? 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? y
(parted) quit
blkid 查看硬盘类型
6.磁盘加密
(1)磁盘加密
fdisk /dev/vdb 创建新的分区
cryptsetup luksFormat /dev/vdb1 加密
cryptsetup open /dev/vdb1 westos 打开加密的分区
mkfs.xfs /dev/mapper/westos 格式化分区为xfs格式
mount /dev/mapper/westos /mnt/ 挂载
--touch /mnt/filename 新建文件
--ls /mnt/ 查看
umount /mnt/ 卸载
cryptsetup close westos 关闭加密分区
cryptsetup open /dev/vdb1 westos 打开加密分区
mount /dev/mapper/redhat /mnt 挂载
ls /mnt 查看
实验:
1:cryptsetup luksFormat /dev/vdb1 ##对磁盘/dev/vdb1进行加密
[2]:cryptsetup open /dev/vdb1 westos ##打开加密的磁盘,名字任意
[3]:mkfs.xfs /dev/mapper/redhat ##格式化分区为xfs
[4]:mount /dev/mapper/redhat /mnt ##挂载到/mnt下
[6]:umount /mnt ##取消挂载
再次挂载上文件存在
[7]:umount /mnt
cryptsetup close redhat ##关闭加密分区
[8]:cryptsetup open /dev/vdb1 redhat ##d=打开设备/dev/vdb1
mount /dev/mapper/redhat /tmp ##挂载设备到/tmp下
(2)永久磁盘永久挂载
1:vim /root/passwd –2017westos ##编辑密码文件 密码2017westos
[2]:chmod 600 /root/passwd ##设置权限600
[3]:cryptsetup luksAddKey /root/passwd ##关联密码文件
[4]:vim /etc/crtpttab “redhat /dev/vdb1 /root/passwd“ ##设置挂载信息
5:vim /dev/fstab ”/dev/vdb1 /mnt xfs defaults 0 0“ ##编辑开机启动信息
[6]:mount -a ##检测/etc/fstab自动挂载
(3)加密清除
删除自动挂载
umount /mnt 解除挂载
vim /etc/fstab 编辑开机读取配置文件
cryptsetup close redhat 关闭锁
vim /etc/crypttab 删除关联信息
rm -fr /root/mima 删除密码文件
mkfs.xfs /dev/vdb1 -f 强制格式化设备
7.磁盘阵列
[2]:mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3} 制作双磁盘一个闲置
[3]: wacth -n 1 cat /proc/mdstat 监控
[4]:mkfs.xfs /dev/md0 格式化磁盘阵
[6]:mdadm -f /dev/md0 /dev/vdb1 指定失效磁盘/dev/vdb1
[7]:查看raid状态 : mdadm -D /dev/md0
[8]:删除/dev/vdb1 mdadm -r /dev/md0 /dev/vdb1
[9]:添加/dev/vdb1 到/dev/md0 磁盘阵:mdadm -a /dev/md0 /dev/vdb1
[10]:取消挂载:uomunt /dev/md0 ;
停止使用:mdadm -S /dev/md0
[11]:删除分区:fdisk /dev/vdb
同步分区表:partprobe
7.磁盘配额
1#新建分区:vdb2,partprobe同步分区列表,mkfs.xfs /dev/vdb1 (xfs文件)格式化
2#Mount -o usrquota /dev/vdb2 /mnt ##挂载,加上配额参数打开,默认关闭,-o打开
3#edqquota -u student ##打开配置文件
第一列磁盘, 第二列原始(已存在)文件大小,更改无效;soft 安装软件数量(超过警告),hard可设置存储大小;inodes文件个数,soft软额度(创建文件里边可以装文件个数超过警告),最后一个hard(文件个数里边的容量不能超过这个个数)
4#设置100M
5.su – student 进行测试
dd if=/dev/zero of=/mnt/file bs=1M count=*
由于vdb1磁盘最大300M,所以划分大小不能超出这个范围,bs=1M,意思是指划分最小单位,count后跟1的整数倍
ext4文件系统磁盘配额需要quotacheck 磁盘 ,会在挂载目录重生成一个文件