1.磁盘名词简介
mbr 主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)码。 mpt 硬盘有效性标示。0磁道一扇区的512个字节分别是 前446:mbr主引导记录。负责找到/boot这个分区 ,447-510是mpt主分区表 ,最后两个字节是mpt硬盘的有效性标识符。
磁盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。 一个硬盘可以有一个主分区,一个扩展分区,也可以只有一个主分区没有扩展分区。逻辑分区可以若干。 主分区是硬盘的启动分区,他是独立的,也是硬盘的第一个分区。 分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,那剩的部分就浪费了。 但扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分 ,硬盘的容量=主分区的容量+扩展分区的容量 扩展分区的容量=各个逻辑分区的容量之和 。
主分区Primary
磁盘上必须存在的分区,一般为第一个分区,我们可以在这个主分区上安装操作系统,一个磁盘最多只能有四个主分区。主分区会在主引导扇区中生成DPT,每个分区表需要占用16bytes,硬盘在设计时只给分区表留下64bytes的存储空间
扩展分区Extended
严格来说,扩展分区不能算一个正常的分区,而是一个连接,起到一个指向的作用。我们可以在扩展分区内建立逻辑分区(logocal),一块硬盘只能有一块扩展分区。
逻辑分区logical
不能在硬盘中单独直接划分逻辑分区,逻辑分区必须存在于扩展分区内,在扩展分区内可以划分多个逻辑分区,逻辑分区的编号从5开始。
2.磁盘查看命令
fdisk -l 系统中的所有磁盘设备
df -TH 系统正在挂载的磁盘设备
blkid 系统可以挂载的磁盘设备id
3.分区划分
查看分区,开始分区 fidsk /dev/vdb
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 创建一个新的空白DOS分区表
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,主分区id为1,起始位置默认,结束位置默认,分区大小为100M,wq 保存并退出,只输入q则表示放弃更改退出
partprobe 同步分区表
cat /proc/partitions 查看分区列表
4.文件系统
mkfs.xfs /dev/vdb1 格式化
mount /dev/vdb1 /mnt 临时挂载
vim /etc/fstab 永久挂载
编写格式:
device mountpoint ftype defaults(mountpoint) 0 0
/dev/vdb1 /mnt xfs defaults 0
mount -a 使/etc/fastab中记录的挂载生效
5.删除分区
先使用umount命令解除挂载
注:当挂载点被使用时,无法解除挂载,需要用fuser -kvm结束使用的进程,然后进行解除挂载
解除挂载之后,使用fdisk /dev/vdb命令 删除分区
fuser -vm /目录 查看用户使用的进程
fuser -kvm /目录 直接删除进程,可以完成取消挂载
6.设定分区方式,将mkdocs 改为 gpt
GUID磁碟分割表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。分区数量上,gpt好像可以支持无限个分区,不过window上只认128个,而且gpt分区不分主分区,逻辑分区,可以理解为全部都是主分区,就相当于可以允许你一个分区一个系统,128个系统了。而这是mbr做不到的,mbr最多只能有四个系统,如果你想要多于四个的分区,那还得牺牲掉可以装一个系统的主分区,即把它装换为逻辑分区。
安全性上,gpt会更安全,因为分区表会备份,且加入校验算法,一旦被病毒感染或误操作可以及时发现,使用安全的备份的分区表补救。
分区容量上,gpt可以识别出大于2T的硬盘,而mbr最大就2t容量更改之前需要把正在使用的分区关闭,才可以进行更改
partoff /dev/vdb2
parted /dev/vdb
已经划分为gpt格式分区
单位新增G,T,P
GPT格式比MBR新增一个PARTUUID全局唯一标示
7.添加swap分区
交换分区一般推荐设定值
fdisk /dev/vdb 添加一个分区
Command (m for help): t
Partition number (1,2, default 2): 2
Partition type (type L to list all types): l
14 Linux swap 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
经过按“l”查看 14 为Linux swap 分区,所以type选择14
mkswap /dev/vdb2 格式化成swap类型
swapon -a /dev/vdb2 加入swap
swapon -s 查看swap分区
设置完成后需要mount挂载,永久挂载需配置etc/fstab文件
8.更改gpt下的swap 为mkdos下的swap
取消挂载,关闭swap分区
设置mbr分区
用mbr分区创建swap分区
注:mbr的linux swap 分区代码为82,与gpt的14不一样
设置完成后需要mount挂载,永久挂载需配置etc/fstab文件
9.用文件来添加swap
dd if=/dev/zero of=/swapfile bs=1M count=1000 创建一个1G大小的文件
mkswap /swapfile 格式化为swap类型
swapon -a /swapfile 临时添加到swap里
-p + 数字 更改优先级
vim /etc/fstab 永久添加swap分区
类型:
/swapfile swap swap defaults,pri=1 0 0 pri优先级,以优先级=1优先挂载
配置永久挂载
查看状态
10.删除swap
第一.vim /etc/fstab 删除此文件中添加的swap行
第二.swapoff /swapfile 断开swap文件链接
swapoff /dev/vdb1 断开swap磁盘链接
第三.rm -rf /swapfile 删除文件
第四.fdisk /dev/vdb 删除磁盘分区
第五.partprobe 同步分区表
第六.swapon -s 查看swap分区状态
11.磁盘加密
fidisk /dev/dvb 磁盘分区,出创建设备
cryptsetup luksFormat /dev/vdb1 安装加密层
cryptsetup open /dev/vdb1 westos (名字任意) 打开加密层
mkfs.xfs /dev/mapper/westos 格式化解密后文件
mount /dev/mapper/westos /mnt 挂载加密设备文件
umout /mnt/ 取消挂载加密设备文件
cryptsetup close westos 关闭加密层
加密的永久性挂载
vim /etc/crypttab 创建并编辑加密文件
格式:文件 设备 加密字符存放文件
vim /root/lukspsfile 创建并编辑设备管理文件的解密字符
里面填写加密的密码
chmod 600 /root/lukspsfile 确保安全,只有root能操作此文件
cryptsetup luksAddKey /dev/vdb1 /root/hellopasswd
vim /etc/fastab 编辑开机自动挂载文件 不可出错,否则系统启动不起来
格式:/dev/mapper/westos /mnt xfs defaults 0 0(不检测不备份)
加密清除
vim /etc/fstab 取消开机自动挂载
> /etc/crypttab 清空加密管理文件
rm -fr /root/lukspsfile 删除加密密码
umount /mnt/ 取消挂载
cryptsetup close westos 关闭加密管理文件
mkfs.xfs /dev/vdb1 用xfs格式化vdb1
12.磁盘配额
mount -o usrquota /dev/vdb1 /mnt 创建并挂载
quotaon -uv /dev/vdb1 激活配额功能
edquota -u student 给student用户磁盘限额配置
切换student用户测试
截取数据dd if=/dev/zero of=/mnt/file bs=1M count=500
磁盘配额永久挂载 配置vim /etc/fstab
13.磁盘阵列
Linux中的磁盘阵列讲解
RAID定义
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损 失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响。
RAID的几种工作模式(仅讨论 RAID0,RAID1,RAID5)
RAID0 (又称为Stripe或Striping--分条)
即Data Stripping数据分条技术。RAID 0可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁 盘的性能和吞吐量。RAID 0没有冗余或错误修复能力,成本低,要求至少两个磁盘,一般只是在那些对数 据安全性要求不高的情况下才被使用。
(同时录入,吞吐量大,适合网页输出)
RAID 1 (又称为Mirror或Mirroring--镜像)
RAID 1称为磁盘镜像:把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,具有很高的数据冗余能力,但磁盘利用 率为50%,故成本最高,多用在保存关键性的重要数据的场合。RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。
RAID 1有以下特点:
(1)、RAID 1的每一个磁盘都具有一个对应的镜像盘,任何时候数据都同步镜像,系统可以从一组 镜像盘中的任何一个磁盘读取数据。
(2)、磁盘所能使用的空间只有磁盘容量总和的一半,系统成本高。
(3)、只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行。
(4)、出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。
(5)、更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。
(6)、RAID 1磁盘控制器的负载相当大,用多个磁盘控制器可以提高数据的安全性和可用性。
(同时分开写速度快,适合贴吧、论坛键入式)
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 以四个硬盘组成的RAID 5为例,其数据存储方式如图4所示:图中,Ap为A1,A2和A3的奇偶校验信息,其它以此类推。由图中可以看出,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘 上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。
fdisk /dev/vdb 创建3个1G分区,创建好后更改格式(t),格式为83,Linux raid
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}
-C创建
-a yes 文件不存在
-l 级别,只有0,1,5
-n 用几块盘创建
-x闲置块数(备用)
几块硬盘/dev/vdb{1..3}
mkfs.xfs /dev/md0 格式化
mount /dev/md0 /mnt/ 挂载
watch -n 1 "cat /proc/mdstat ; df -h /mnt" 监控命令创建过程
s 处表示闲置硬盘
相关命令参数
mdadm -D /dev/md0 查看磁盘状态
mdadm /dec/md0 -f /dev/vdb2 损坏磁盘
mdadm /dev/md0 -r /dev/vdb2 删除磁盘
mdadm /dev/md0 -a /dev/vdb2 增加磁盘
umont /dev/md0 取消挂载
mdadm -S /dev/md0 停止raid
fisk /dev/vdb 删除分区
partprobe 同步分区信息表
cat /proc/partitions 查看分区情况