MBR vs GPT

MBR GPT
最大磁盘 2 TB 9.4 ZB
主分区数 4 128
启动 BIOS UEFI
用哪个 老硬件 新硬件首选

新机器 / > 2T 用 GPT

⚠ 危险操作

分区会覆写分区表——误操作 = 数据全丢。lsblk 确认目标盘

fdisk:交互式

sudo fdisk -l                          # 看所有盘
sudo fdisk /dev/sdb                    # 进入交互

菜单:

作用
m 帮助
n 新分区
d 删分区
p 打印当前
t 改类型
g 转 GPT
o 转 MBR
w 保存退出
q 不保存退出

建一个分区

n           新建
p           主分区
1           分区号
回车         起始扇区(默认)
回车         结束扇区(默认 = 整盘)
w           保存

parted:现代,GPT 友好

sudo parted -l                         # 看所有盘
sudo parted /dev/sdb                   # 进入交互

或一行:

sudo parted /dev/sdb --script mklabel gpt mkpart primary ext4 0% 100%

命令

(parted) mklabel gpt                  # 建 GPT 分区表
(parted) mklabel msdos                # 建 MBR
(parted) mkpart primary ext4 0% 50%   # 第一分区占前半
(parted) mkpart primary xfs 50% 100%  # 第二分区占后半
(parted) print                         # 看当前
(parted) rm 1                          # 删第 1 个分区
(parted) name 1 mydata                 # 给分区起名(GPT 支持)
(parted) quit

完整:加新盘到能用

# 1. 确认目标
lsblk
# /dev/sdb 100G 全新盘

# 2. 分区
sudo parted /dev/sdb --script mklabel gpt mkpart primary ext4 0% 100%

# 3. 格式化
sudo mkfs.ext4 /dev/sdb1

# 4. 挂载
sudo mkdir /data
sudo mount /dev/sdb1 /data

# 5. fstab 持久化
sudo blkid /dev/sdb1                  # 拿 UUID
echo "UUID=xxx /data ext4 defaults 0 2" | sudo tee -a /etc/fstab
sudo mount -a && echo $?              # 测试,0 才安全重启

看分区表类型

sudo parted /dev/sda print | head
# Partition Table: gpt    或 msdos

  • 写错盘 = 数据丢失——fdisk /dev/sdb 还是 /dev/sda,看清楚
  • parted 改了立即生效(fdisk 是 w 才生效)—— parted 更危险
  • 云上轻量服务器通常没法 fdisk——扩盘要用云控制台 + growpart
  • 重启前必须测试 fstab——见 linux/39-filesystem-mgmt