首页 > 代码库 > Linux的磁盘管理

Linux的磁盘管理

1.磁盘名词简介

         mbr 主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)码。  mpt   硬盘有效性标示。0磁道一扇区的512个字节分别是 前446:mbr主引导记录。负责找到/boot这个分区 ,447-510是mpt主分区表 ,最后两个字节是mpt硬盘的有效性标识符。
         磁盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。  一个硬盘可以有一个主分区,一个扩展分区,也可以只有一个主分区没有扩展分区。逻辑分区可以若干。  主分区是硬盘的启动分区,他是独立的,也是硬盘的第一个分区。  分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,那剩的部分就浪费了。  但扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分 ,硬盘的容量=主分区的容量+扩展分区的容量  扩展分区的容量=各个逻辑分区的容量之和 。


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   查看分区列表

技术分享


文件系统

技术分享


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中记录的挂载生效
技术分享


4.删除分区

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

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

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

技术分享


5.设定分区方式,将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全局唯一标示


6.添加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文件

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

取消挂载,关闭swap分区

技术分享

技术分享

设置mbr分区

技术分享


用mbr分区创建swap分区

技术分享

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


技术分享


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

技术分享


8.用文件来添加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优先挂载

技术分享

配置永久挂载

技术分享

查看状态

技术分享


9.删除swap

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

技术分享

Linux的磁盘管理