深度剖析Linux硬盘格式

发布时间:2023-05-24

一、MBR分区格式

MBR分区格式是硬盘上最常用的分区格式之一。它是由硬盘的主引导记录(Master Boot Record)所组成,占用了磁盘的头512个字节,其中包含磁盘分区表和引导程序。MBR分区最多支持4个主分区或3个主分区和1个扩展分区。
以下是MBR分区格式的代码示例:

[root@localhost ~]# fdisk -l /dev/sda
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000fb487
Device     Boot    Start      End  Sectors  Size  Id  Type
/dev/sda1  *        2048  1671983  1669936  814M  83  Linux
/dev/sda2        1671984  83886079 82214096 39.2G  8e  Linux LVM

MBR分区格式的优点是相对简单,广泛应用,但它的缺点也非常明显。最大的缺点就是MBR区只能识别2TB以下的硬盘,而且只支持4个主分区或3个主分区和1个扩展分区,无法满足大容量硬盘的分区需求。

二、GPT分区格式

GPT分区格式是全称GUID分区表(GUID Partition Table),它是一种全新的磁盘分区表,支持PC机的EFI系统启动。相对于MBR分区格式,GPT分区格式支持更大的硬盘容量和更多的分区数量,最多可支持128个分区,每个分区的容量也可超过2TB。此外GPT分区表有备份分区表,防止系统由于分区表数据丢失导致的不可启动。
以下是GPT分区格式的代码示例:

[root@localhost ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.5
Partition table scan:
    MBR: protective
    GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Model: QEMU HARDDISK 
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 564E8963-89E1-4645-8F7F-3A5D735F1CB1
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1671983   814.0 MiB   8300  Linux filesystem
   2         1671984        83886046   39.1 GiB    8E00  Linux LVM

GPT分区格式的缺点是,在旧电脑上,其无法使用UEFI引导,而且GPT分区格式不同于MBR分区格式默认的bootloader程序,需要特别注意,否则可能会导致系统无法启动。

三、EXT4文件系统

EXT4是Linux下非常流行的一个文件系统,它继承了EXT3文件系统的优点,在EXT3的基础上做了很多改进和优化。EXT4通常用于较大的硬盘分区,性能相对与EXT3提高了不少。
以下是EXT4文件系统的代码示例:

[root@localhost ~]# mkfs.ext4 /dev/sda1
mke2fs 1.42.9 (28-Dec-2013)
Creating filesystem with 214528 blocks and 524288 inodes
Filesystem UUID: a05b0f23-ec37-4af4-9752-ee81ebd03d3d
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done   

EXT4文件系统有很多优点,包括支持更大的分区和文件,支持日志系统和数据恢复功能,同时也比其他文件系统拥有更快的数据读写速度等众多优点。

四、XFS文件系统

XFS是一种高性能的文件系统,也是Linux系统上流行的文件系统之一。XFS的特点是支持更大的单文件和分区,这使得它非常适合大容量的数据存储。此外,提供快速的故障检测,能够在发生故障时有效地恢复文件系统。
以下是XFS文件系统的代码示例:

[root@localhost ~]# mkfs.xfs /dev/sda2
meta-data=/dev/sda2              isize=512    agcount=4, agsize=2448384 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0
data     =                       bsize=4096   blocks=9793536, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=4774, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

XFS文件系统的优点是非常适合进行大文件和大数据存储,而且具有良好的性能和可靠性。但是它的缺点是不适用于小文件,文件数量过多时会影响磁盘IO性能。

五、Btrfs文件系统

Btrfs是一种新型的文件系统,相比于传统的EXT和XFS文件系统,它具有更好的可靠性、数据校验、快照功能和在线扩容能力。此外,Btrfs文件系统也提供了更好的数据管理和维护机制,使得数据的备份和恢复更加简单。
以下是Btrfs文件系统的代码示例:

[root@localhost ~]# mkfs.btrfs /dev/sda3
btrfs-progs v4.6
See http://btrfs.wiki.kernel.org for more information.
Label:              (null)
UUID:               ecfa5c8c-1e64-4eb7-bccb-16cc46537fad
Node size:          16384
Sector size:        4096
Filesystem size:    3.26GB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         DUP              32.00MiB
  System:           DUP               8.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1     3.26GB  /dev/sda3

Btrfs文件系统的优点是非常适合进行大数据量的存储和管理,同时其具备高可靠性、容错能力,能够防止数据的损坏和丢失,非常适合用于企业级应用。