fdisk/parted创建与删除分区

fdisk新建分区操作流程

目标示例:在 /dev/sdb 磁盘上创建大小为 300G 的新分区 /dev/sdb1,类型为 Linux LVM(8e)

1. 启动 fdisk

fdisk /dev/sdb   # 替换为目标磁盘(如 /dev/sdc)

2. 查看现有分区表(可选)

Command (m for help): p   # 打印当前分区信息

3. 创建新分区

Command (m for help): n    # 新建分区
  • 设置选择分区类型

Select (default p): p    # 主分区(p)或扩展分区(e)
  • 设置分区号(默认自动分配):

Partition number (1-4, default 1): 1   # 输入分区号(如1)
  • 指定起始扇区(默认从磁盘空闲位置开始):

First sector (2048-209715199, default 2048): [回车]  # 默认起始位置
  • 指定分区大小

Last sector, +/-sectors or +/-size{K,M,G,T,P}: +300G  # 结束位置或直接指定大小

4. 修改分区类型(可选)

例如设置为 Linux LVM(类型代码 8e

Command (m for help): t    # 更改分区类型
Selected partition 1       # 选择刚创建的分区(如1)
Hex code (type L to list): 8e  # 输入类型代码(LVM为8e,Linux文件系统为83)

5. 保存并退出

Command (m for help): w   # 写入分区表并退出

警告:输入 w 前请确认操作无误!若需放弃修改,输入 q 退出。

6. 刷新分区表

partprobe /dev/sdb   # 让系统重新识别分区(无需重启)
# 或
reboot              # 重启系统(可选)

验证分区

fdisk -l /dev/sdb     # 检查分区表
lsblk /dev/sdb        # 查看分区层次

后续操作

1. 格式化分区(例如 ext4):

mkfs.ext4 /dev/sdb1

2. 挂载分区

mkdir /mnt/data
mount /dev/sdb1 /mnt/data

3. 开机自动挂载

blkid /dev/sdb1                    # 获取UUID
vi /etc/fstab                      # 添加以下行
UUID=xxxx-xxxx  /mnt/data  ext4  defaults  0 0

注意事项

  1. 数据备份:操作前备份重要数据,分区操作可能导致数据丢失。

  2. 磁盘标识:务必确认目标磁盘(如 /dev/sdb),避免误操作系统盘

  3. 分区对齐:建议使用默认起始扇区(自动对齐优化性能)。

  4. 分区类型

    • LVM 分区:类型代码 8e

    • 普通数据分区:默认 83(Linux 文件系统)。

  5. MBR 限制

    • 最多 4 个主分区,如需更多分区需创建扩展分区(类型 5)。

    • 单个分区最大支持 2TB(超过需使用 GPT 分区表,改用 parted 工具)。

常见问题

Q1: 磁盘空间未完全分配?

  • 若需将整块磁盘分配给单个分区,在指定分区大小时输入 +100% 或直接回车使用默认最大值。

Q2: 分区后系统未识别?

  • 运行 partprobe 或重启系统刷新分区表。

  • 检查是否已格式化(未格式化的分区无法挂载)。


parted新建分区操作流程

以下是使用 parted 工具创建新分区的详细示例,适用于 GPT 或 MBR 分区表:

场景示例

将 /dev/sdb 磁盘划分为一个 500GB 的分区(文件系统为 ext4),剩余空间留给后续使用。

操作步骤

1. 启动 parted 并选择磁盘

parted /dev/sdb   # 替换为目标磁盘(如 /dev/sdc)

2.(可选)创建新分区表

如果磁盘未初始化或需清空现有分区表:

(parted) mklabel gpt     # 创建 GPT 分区表(或 msdos 对应 MBR)

警告:此操作会清除磁盘所有数据!

3. 查看当前分区信息

(parted) print        # 确认磁盘容量及现有分区

4. 创建新分区

(parted) mkpart
Partition name?  []? data_part1           # 分区名称(GPT可用,MBR忽略)
File system type?  [ext2]? ext4           # 文件系统类型(仅标识,不实际格式化)
Start? 1GiB                               # 起始位置(建议对齐,如 1GiB)
End? 500GiB                               # 结束位置(或百分比如 50%)

5. 验证分区

(parted) print        # 检查新分区(如 /dev/sdb1)

6. 退出 parted

(parted) quit

完整命令示例

parted /dev/sdb <<EOF
mklabel gpt
mkpart data_part1 ext4 1GiB 500GiB
print
quit
EOF

关键参数说明

参数说明
mklabel <type>创建分区表类型:gpt 或 msdos(MBR)
mkpart创建分区,需指定名称(GPT)、文件系统类型(仅标识)、起始/结束位置
-a optimal(可选)对齐到最佳性能扇区(parted 默认自动对齐)
unit GiB(交互模式)设置单位为 GiB,方便输入

注意事项

  1. 数据备份:操作前备份重要数据,分区操作不可逆。

  2. 磁盘标识:务必确认目标磁盘(如 /dev/sdb),避免误操作系统盘。

  3. 分区对齐:建议起始位置从 1MiB 或 1GiB 开始,避免性能损失。

  4. GPT vs MBR

    • GPT:支持 >2TB 磁盘,最多 128 分区。

    • MBR:兼容旧系统,最多 4 主分区(或扩展分区)。


fdisk删除分区操作流程

使用 fdisk 删除分区的操作需要谨慎,删除分区会导致数据丢失。以下是详细步骤:

操作步骤

1. 列出磁盘分区信息

fdisk -l

确认要操作的磁盘(如 /dev/sdb)及需要删除的分区号(如 /dev/sdb1)。

2. 启动 fdisk 工具

fdisk /dev/sdb   # 替换为目标磁盘(如 sdb、sdc 等)

3. 查看当前分区表

  • 在 fdisk 交互界面输入 p,打印分区表,确认要删除的分区号。

4. 删除分区

  • 输入 d 命令。

  • 输入要删除的分区号(如 1 对应 /dev/sdb1)。

Command (m for help): d
Partition number (1-3, default 3): 1   # 输入目标分区号

5. 保存并退出

  • 输入 w 将更改写入磁盘并退出:

Command (m for help): w
  • 如果误操作,输入 q 退出不保存

6. 刷新分区表(可选):

partprobe /dev/sdb   # 让系统重新读取分区表(无需重启)

注意事项

1. 数据丢失风险:删除分区会清除分区表信息,导致该分区数据不可访问(需提前备份)。

2. 确认目标磁盘:操作前务必通过 fdisk -l 确认磁盘标识符(如 /dev/sdb),避免误删系统盘。

3. 挂载状态检查:确保分区未被挂载:

umount /dev/sdb1   # 如果已挂载,先卸载

4. LVM 关联:如果分区是 LVM 物理卷(PV),需先移除 LVM 关联:

vgreduce --removemissing vg_name   # 从卷组中移除缺失的PV
pvremove /dev/sdb1                 # 删除物理卷

parted删除分区操作流程

  • parted:更友好的交互式分区工具,支持 GPT 分区表:

parted /dev/sdb
(parted) print          # 查看分区
(parted) rm 1           # 删除分区1
(parted) quit

完成操作后,分区将从磁盘中移除。如果需要重新分区,可再次使用 fdisk 或 parted 创建新分区。


使用gdisk将MBR (DOS)分区表转为GPT分区

操作步骤

1. 备份分区表和数据(操作会破坏现有分区,需先备份数据)

# 备份当前分区表(MBR)
sfdisk -d /dev/sdb > sdb_mbr_backup.txt

# 备份重要数据(必须执行!)
cp -a /挂载点路径 /备份路径

2. 启动 gdisk

gdisk /dev/sdb

如果看到提示:
Found invalid GPT and valid MBR; converting MBR to GPT format in memory.
这是正常现象,按回车继续。

3. 转换分区表类型

Command (? for help): r  # 进入恢复/转换菜单
Recovery/transformation command (? for help): g  # 将MBR转换为GPT(有些版本使用o转换,具体看工具使用帮助)
Recovery/transformation command (? for help): w  # 写入更改
Do you want to proceed? (Y/N): Y  # 确认操作

⚠️ 警告:此操作会立即清除所有MBR分区信息

4. 验证转换结果

# 查看分区表类型
parted /dev/sdb print | grep Table
# 应显示:Partition Table: gpt

# 检查分区是否丢失(此时应无分区)
gdisk -l /dev/sdb

5. 重新创建GPT分区

gdisk /dev/sdb

按 n 创建新分区(根据需要设置大小和类型代码)

例如创建 Linux 文件系统分区:

Command (? for help): n
Partition number: 1  # 分区号
First sector: 2048  # 起始扇区(默认)
Last sector: +200G  # 结束位置(或直接回车使用全部空间)
Hex code: 8300      # Linux文件系统类型(LVM为8e00)
  • 按 w 保存分区表

6. 创建文件系统并恢复数据

# 格式化分区(例如ext4)
sudo mkfs.ext4 /dev/sdb1

# 挂载并恢复数据
sudo mount /dev/sdb1 /mnt/new
sudo cp -a /备份路径/* /mnt/new/

注意事项

  1. 数据风险

    • 转换过程会完全清除MBR分区表,所有现有分区需要手动重建

    • 如果磁盘已安装操作系统,转换后系统可能无法启动(需修复引导)

  2. 兼容性问题

    • 旧主板(BIOS模式)可能需要启用 CSM 兼容模块才能从GPT磁盘启动

    • 如果磁盘用作系统盘,建议使用 grub-install 重新安装引导加载程序

  3. 替代方案

    • 如需保留数据转换,可使用 sgdisk(高风险):

      sudo sgdisk -g /dev/sdb  # 保留数据转换(不保证成功)
    • 更安全的方法是备份数据后全新分区


转换前后对比

特性MBR (DOS)GPT
最大磁盘大小2TB8ZB(理论值)
分区数量4个主分区(或3主+1扩展)128个主分区(实际限制)
兼容性所有系统支持需要UEFI或BIOS+CSM支持
安全特性支持CRC校验和备份分区表


参考:LVM卷在线扩缩容及常用操作

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/6374.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注