Linux的磁盘管理

简介:

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          系统中的所有磁盘设备

wKioL1mAim-BltXMAACbvrTVAoY809.png

df  -TH         系统正在挂载的磁盘设备

wKiom1mAioPit9CMAABMaZGzOLY097.png

blkid             系统可以挂载的磁盘设备id

wKioL1mAipXRyI4JAAAc-_T2eGo225.png


3.分区划分
查看分区,开始分区 fidsk /dev/vdb

wKiom1mAiumyYzCOAAGzeMWZ5H8598.png

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则表示放弃更改退出
wKioL1mAi7GjPC79AADg9m0igog970.png
partprobe                  同步分区表

cat /proc/partitions   查看分区列表

wKioL1mAjJiQLb8rAAB9pQ2qdzQ034.png


4.文件系统

wKiom1mAjXri5SMYAAbO44Alsyc244.png


mkfs.xfs /dev/vdb1     格式化

wKioL1mAjiXTlvhaAADEM9xxzoA446.png

mount /dev/vdb1  /mnt      临时挂载
vim /etc/fstab          永久挂载
编写格式:
device    mountpoint    ftype   defaults(mountpoint)   0   0
/dev/vdb1    /mnt        xfs    defaults            0
mount -a          使/etc/fastab中记录的挂载生效
wKiom1mAjoeCXbVEAADqgWJa3SY647.png


5.删除分区

先使用umount命令解除挂载
  注:当挂载点被使用时,无法解除挂载,需要用fuser -kvm结束使用的进程,然后进行解除挂载
解除挂载之后,使用fdisk /dev/vdb命令 删除分区

fuser -vm /目录 查看用户使用的进程

fuser -kvm /目录 直接删除进程,可以完成取消挂载

wKiom1mAkC_DgUrTAAEIDhBP-iQ272.png


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

wKioL1mAkKeyKljnAACwKAWmD60374.png

已经划分为gpt格式分区

wKiom1mAkirAbhHyAAF5K0k4VX0226.png

单位新增G,T,P

wKioL1mAkirDpnfiAABveTnz8O8004.png

GPT格式比MBR新增一个PARTUUID全局唯一标示


7.添加swap分区

交换分区一般推荐设定值

wKioL1mDJX7wYhZUAAHRhU3fUEk499.png


fdisk  /dev/vdb         添加一个分区
wKiom1mAkzjhUHAVAAGdMV0LzMk503.png
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

wKiom1mAk72ALHUUAAGgO4TBARI053.png

mkswap /dev/vdb2          格式化成swap类型
swapon -a /dev/vdb2      加入swap
swapon -s                         查看swap分区
wKioL1mAlAmwsGijAACbr1eT9zU656.png

设置完成后需要mount挂载,永久挂载需配置etc/fstab文件

8.更改gpt下的swap 为mkdos下的swap

取消挂载,关闭swap分区

wKiom1mAlNSw6d2EAAATx18VraE893.png

wKioL1mAlNSQ99tmAACr1SMaE_M386.png

设置mbr分区

wKioL1mAlNbAXICuAAIi7L0PKwM455.png


用mbr分区创建swap分区

wKioL1mAlUfBLlKVAAFwUW3yyOg393.png

注:mbr的linux swap 分区代码为82,与gpt的14不一样


wKioL1mAlc7QxjpGAAEWm2L-dVw717.png


设置完成后需要mount挂载,永久挂载需配置etc/fstab文件

wKiom1mAltjxuJ05AAChLV1ykII261.png


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优先挂载

wKioL1mAlpGzsoVnAAFLBCZVmPQ352.png

配置永久挂载

wKioL1mAlpGwDEqYAADG0ZzDvg0124.png

查看状态

wKioL1mAlxawvAGxAABxgkD6DBU290.png


10.删除swap

第一.vim /etc/fstab               删除此文件中添加的swap行
第二.swapoff /swapfile       断开swap文件链接
         swapoff /dev/vdb1      断开swap磁盘链接
第三.rm -rf /swapfile            删除文件
第四.fdisk /dev/vdb              删除磁盘分区
第五.partprobe                     同步分区表
第六.swapon -s                 查看swap分区状态

wKiom1mAl4TxyJgeAAHXOZlQR2s238.png



11.磁盘加密

fidisk /dev/dvb            磁盘分区,出创建设备  

wKiom1mDJnfxXmT-AAFgXNOqWNw505.png       


cryptsetup luksFormat /dev/vdb1                            安装加密层

cryptsetup open /dev/vdb1 westos (名字任意)      打开加密层

mkfs.xfs /dev/mapper/westos                       格式化解密后文件

wKioL1mDJr7QAHsLAAFgXNOqWNw874.png


mount /dev/mapper/westos /mnt              挂载加密设备文件

wKiom1mDJ-ag3N2SAAEOjhzMWzM300.png


umout /mnt/                                              取消挂载加密设备文件
cryptsetup close westos                           关闭加密层

wKioL1mDKBKxsjGYAAGRpoJhKW4253.png


加密的永久性挂载
vim /etc/crypttab          创建并编辑加密文件
格式:文件    设备        加密字符存放文件

wKioL1mDKUHyXHjnAAAgaemh4Sg856.png

vim /root/lukspsfile   创建并编辑设备管理文件的解密字符
里面填写加密的密码

chmod 600 /root/lukspsfile        确保安全,只有root能操作此文件


cryptsetup luksAddKey /dev/vdb1 /root/hellopasswd

wKiom1mDKhrChiJRAACprLgM1Mg543.png


vim /etc/fastab           编辑开机自动挂载文件       不可出错,否则系统启动不起来
格式:/dev/mapper/westos    /mnt    xfs    defaults    0 0(不检测不备份)

wKioL1mDKlGiwuz-AACcdSXRdBI533.png

reboot               测试重启进行验证
wKioL1mDKrjDK-OPAACviEKqfCU738.png


加密清除
vim /etc/fstab                      取消开机自动挂载 
 > /etc/crypttab                    清空加密管理文件
rm -fr /root/lukspsfile          删除加密密码
umount /mnt/                       取消挂载
cryptsetup close westos    关闭加密管理文件
mkfs.xfs /dev/vdb1             用xfs格式化vdb1

wKioL1mDKwrDAc72AABre-WeB3Q391.png

wKiom1mDKwuhMsADAAC_RYRCaEo539.png



12.磁盘配额
mount -o usrquota /dev/vdb1 /mnt               创建并挂载
quotaon -uv /dev/vdb1                                   激活配额功能

wKioL1mDLH7yaH2FAABJ8e8Rals127.png


edquota -u student                                           给student用户磁盘限额配置

wKiom1mDLFrwLqFwAABNOsliDGo367.png


切换student用户测试

截取数据dd if=/dev/zero of=/mnt/file bs=1M count=500

wKioL1mDLM6BdVtgAADYP9eFWPc723.png

磁盘配额永久挂载 配置vim /etc/fstab

wKioL1mDLy7wvUOGAABOBenZBfE301.png

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        

wKiom1mDMPzDJgnKAAGaOYzLuJ0420.png

madadm -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}                       

wKiom1mDMGKBWF4AAADHtSvYpb4607.png


mkfs.xfs /dev/md0                     格式化
mount /dev/md0 /mnt/               挂载

wKioL1mDMKzjtEnnAAGB1hoQHz4525.png


watch -n 1 "cat /proc/mdstat ; df -h /mnt"     监控命令创建过程

wKiom1mDMcHwlrYUAABxdOFiCoo172.png

s 处表示闲置硬盘


相关命令参数
mdadm -D /dev/md0                              查看磁盘状态

wKioL1mDMh_zvlUqAAFFAx8rv60757.png


mdadm /dec/md0 -f /dev/vdb2              损坏磁盘

wKioL1mDMsmTPLGBAAAu3iG-nLM757.png

mdadm /dev/md0 -r /dev/vdb2             删除磁盘

wKiom1mDMuTznpfDAAAvTbj4Z5o021.png

mdadm /dev/md0 -a /dev/vdb2            增加磁盘

wKiom1mDMzGBOjvcAAAnlE9ige4307.png
umont /dev/md0              取消挂载
mdadm -S  /dev/md0      停止raid

wKiom1mDM1OhLUxBAAA5KVwKwYk647.png

fisk /dev/vdb          删除分区
partprobe               同步分区信息表

wKioL1mDM5eQR0lpAAFwcIf2SwA270.png

cat /proc/partitions      查看分区情况





      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1952823,如需转载请自行联系原作者







相关文章
|
1月前
|
Linux Shell C语言
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
30 1
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
36 1
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux mkfs.ext2 命令使用教程
【Shell 命令集合 磁盘维护 】Linux mkfs.ext2 命令使用教程
38 1
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
31 2
|
1月前
|
存储 算法 Shell
【Shell 命令集合 磁盘维护 】Linux 创建启动磁盘 mkbootdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建启动磁盘 mkbootdisk命令使用教程
29 1
|
1月前
|
存储 安全 Shell
【Shell 命令集合 磁盘维护 】Linux mformat 命令使用教程
【Shell 命令集合 磁盘维护 】Linux mformat 命令使用教程
28 0
|
1月前
|
Shell Linux API
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
33 1
|
1月前
|
Shell Linux C语言
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
35 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
33 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
30 2