看现有磁盘

# 块设备(最直观)
lsblk
# NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
# sda      8:0    0   30G  0 disk
# ├─sda1   8:1    0   29G  0 part /
# └─sda2   8:2    0    1G  0 part [SWAP]
# sdb      8:16   0  100G  0 disk           ← 新盘

# 详细
sudo fdisk -l
sudo parted -l

MBR vs GPT

MBR GPT
最大磁盘 2 TB 9.4 ZB
主分区数 4 128(默认)
启动支持 BIOS UEFI
现代用哪个 老硬件 新硬件首选

新机器 / 大于 2T 磁盘 → GPT

fdisk:MBR 分区(也能处理 GPT)

sudo fdisk /dev/sdb

交互式菜单:

  • m 帮助
  • n 新建分区
  • d 删分区
  • p 打印当前分区表
  • t 改分区类型
  • w 保存并退出
  • q 不保存退出

新建一个用整盘的分区:

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

parted:GPT 分区(更现代)

sudo parted /dev/sdb
(parted) mklabel gpt              # 建分区表
(parted) mkpart primary ext4 0% 100%   # 整盘一个分区
(parted) print
(parted) quit

或一行命令:

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

整个流程:加新盘 → 能用

# 1. 看到新盘 /dev/sdb(100 GB)
sudo lsblk

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

# 3. 看新分区
sudo lsblk
# sdb       8:16   0  100G  0 disk
# └─sdb1    8:17   0  100G  0 part   ← 出现了

# 4. 格式化(建文件系统)
sudo mkfs.ext4 /dev/sdb1

# 5. 挂载到目录
sudo mkdir /data
sudo mount /dev/sdb1 /data

# 6. 验证
df -h | grep /data

# 7. 开机自动挂(下篇详解)
sudo blkid /dev/sdb1                # 拿到 UUID
echo "UUID=xxx /data ext4 defaults 0 2" | sudo tee -a /etc/fstab

注意事项

分区操作是破坏性的——fdisk / parted 都会直接覆写分区表。误操作 = 数据丢失。

  • 操作前 lsblk 确认目标是新盘(不是 / 所在的盘
  • 重要数据先备份
  • 测试机器先练,生产再用
  • 云上轻量服务器通常只能用云控制台扩盘,本地 fdisk 看不到效果

看分区类型

fdisk -l 输出里:

Device     Boot Start       End   Sectors  Size Id Type
/dev/sda1  *     2048 209715199 209713152  100G 83 Linux
/dev/sda2     209715200 209917951    202752   99M  6 FAT16
  • 83 Linux
  • 82 Linux swap
  • EF EFI System
  • 8E LVM

下一篇:分区有了 → 文件系统挂载。