Linux系统磁盘的管理

这篇博客介绍了Linux系统中MBR和GPT两种磁盘分区表的区别,包括MBR的限制和GPT的优势。同时,详细讲解了如何备份与恢复MBR主引导记录,以及磁盘容量的检查方法如df和du命令。还涵盖了磁盘分区工具fdisk的使用,磁盘格式化,临时和永久挂载磁盘的操作,以及交换分区swap的创建、启用和停用。

MBR和GPT

MBR

MBR(Master Boot Record)是主引导记录的缩写,在传统硬盘分区中,引导扇区是每个分区(Partition)的第一扇区,而主引导扇区是硬盘的第一块扇区。为了方便计算机访问硬盘,把硬盘上的空间划分成许许多多的区块(sectors),即扇区,然后给每个区块分配一个地址,称为逻辑块地址(LBA)。
在MBR磁盘的第一个扇区内保护着启动代码和硬盘分区表。启动代码的作用是指引计算机从活动分区引导启动操作系统(BIOS下启动操作系统的方式);分区表的作用是记录硬盘的分区信息。
在MBR中,分区大小是固定的,一共可容纳4个主要分区信息。在MBR分区表中逻辑块地址采用32位二进制数表示,因此一共可表示2^32个逻辑块地址。如果一个扇区大小为512字节,那么MBR硬盘最大分区容量仅为2TB。

GPT

GPT是GUID磁碟分割表(GUID Partition Table)的缩写,即全局唯一标识磁盘分区表,是一个实体硬盘的分区表的结构布局的标准。
在GTP磁盘的第一个数据块中同样有一个与MBR(主引导记录)类似的标记,叫做PMBR。PMBR的作用是,当使用不支持GPT的分区工具时,整个硬盘将显示为一个受保护的分区,以防止分区表及硬盘数据遭到破坏。UEFI并不从PMBR中获取GPT磁盘的分区信息,它有自己的分区表,即GPT分区表。
GPT的分区方案之所以比MBR更先进,是因为在GPT分区表头中可自定义分区数量的最大值,也就是说GPT分区表的大小不是固定的。在Windows中,微软设定GPT磁盘的最大分区数量为128个。另外,GPT分区方案中逻辑快地址(LBA)采用64位二进制数表示,可以表示2^64个逻辑块地址。除此之外,GPT分区方案在硬盘的末端还有一个备份分区表,保证了分区信息不容易丢失。

备份MBR主引导记录

[root@localhost ~]# dd if=/dev/sda of=/opt/mbr.backup bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000368214 秒,1.4 MB/秒
[root@localhost ~]# file /opt/mbr.backup 
/opt/mbr.backup: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 2048, 2097152 sectors; partition 2: ID=0x8e, starthead 170, startsector 2099200, 39843840 sectors, code offset 0x63

恢复MBR主引导记录

[root@localhost ~]# dd if=/opt/mbr.backup of=/dev/sda bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000241842 秒,2.1 MB/秒

df:磁盘容量检查

df -i //查看inode使用情况
df -h //以G或者T或者M人性化方式显示
df -T //查看文件类型

[root@localhost ~]# df 
文件系统                 1K-块   已用     可用 已用% 挂载点
/dev/mapper/rhel-root 17811456 973052 16838404    6% /
devtmpfs                922444      0   922444    0% /dev
tmpfs                   933524      0   933524    0% /dev/shm
tmpfs                   933524   8788   924736    1% /run
tmpfs                   933524      0   933524    0% /sys/fs/cgroup
/dev/sda1              1038336 145864   892472   15% /boot
tmpfs                   186708      0   186708    0% /run/user/0
[root@localhost ~]# df -T
文件系统              类型        1K-块   已用     可用 已用% 挂载点
/dev/mapper/rhel-root xfs      17811456 973052 16838404    6% /
devtmpfs              devtmpfs   922444      0   922444    0% /dev
tmpfs                 tmpfs      933524      0   933524    0% /dev/shm
tmpfs                 tmpfs      933524   8788   924736    1% /run
tmpfs                 tmpfs      933524      0   933524    0% /sys/fs/cgroup
/dev/sda1             xfs       1038336 145864   892472   15% /boot
tmpfs                 tmpfs      186708      0   186708    0% /run/user/0

du:查看目录或者文件的容量,不加参数以k为单位

du -sh opt //人性化输出显示大小
-s:列出总和
-h:人性化显示容量信息

[root@localhost ~]# du -sh *
4.0K	anaconda-ks.cfg
1.3M	yum-3.4.3-163.el7.centos.noarch.rpm
28K	yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
36K	yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
28K	yum-updateonboot-1.1.31-52.el7.noarch.rpm
124K	yum-utils-1.1.31-52.el7.noarch.rpm
[root@localhost ~]# du -sh /tmp/
8.0K	/tmp/
[root@localhost ~]# du -h /tmp/
0	/tmp/.Test-unix
0	/tmp/.XIM-unix
0	/tmp/.ICE-unix
0	/tmp/.font-unix
0	/tmp/.X11-unix
0	/tmp/systemd-private-c7cb3cd712f547d7a54f32225b57ef2b-chronyd.service-yfL3qi/tmp

lsblk:查看分区情况

[root@localhost ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   20G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   19G  0 part 
  ├─rhel-root 253:0    0   17G  0 lvm  /
  └─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
sdb             8:16   0   20G  0 disk 
sdc             8:32   0   20G  0 disk 
sr0            11:0    1  3.8G  0 rom  

磁盘分区

分区工具有fdisk和gdisk,当硬盘小于2T的时候我们应该用fdisk来分区,而当硬盘大于2T的时候则应用gdisk来进行分区

fdisk分区(1P1E1L)

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x6b8c7ced 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+500M
分区 1 已设置为 Linux 类型,大小设为 500 MiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   20G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   19G  0 part 
  ├─rhel-root 253:0    0   17G  0 lvm  /
  └─rhel-swap 253:1    0    2G  0 lvm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值