fdisk 和 parted:
fdisk 是用來對 Linux 下的 MBR 分區進行操作的一款分區工具, 由於 MBR 的設計缺陷導致 MBR 不能處理大於 2TB 的硬盤, 並且主分區個數不能超過 4 個 由於 MBR 的設計缺陷所以后來誕生了 GBT 分區, 而在 Linux 下對 GPT 分區進行操作的工具叫做 parted
fdisk:
選項:
-h # 查看幫助信息
-l # 查看系統硬盤設備信息
# 對指定的硬盤進行操作, 進入 fdisk 的交互式命令行
fdisk /dev/sdb
# 交互式命令行
m # 打印幫助信息
p # 打印分區信息
l # 打印支持的分區類型和編號
t # 修改分區類型
n # 新建分區
d # 刪除指定分區(指定 Device Boot 值, 使用 p 查看)
q # 退出
w # 保存修改並退出
# 新建分區
n
Partition type:
p # 創建主分區(MBR 格式一個盤最多支持存在4個主分區)
e # 創建擴展分區
l # 創建邏輯分區(分區編號從 5 開始, 必須存在擴展分區才能創建邏輯分區)
Select (default p):
選擇創建分區類型
Partition number (1-4, default 1):
指定分區編號(回車即可)
First sector (2048-2097151, default 2048):
選擇開始扇區(回車即可)
Last sector, +sectors or +size{K,M,G} (4096-2097151, default 2097151):
選擇結束扇區, 由於扇區不好確定大小, 所以可以采用 +size{K,M,G} 方式設置(如果要分配所有的硬盤空間 回車即可)
# 修改分區類型
t /dev/sdb1
# 將硬盤設置為 LVM 格式
Hex code (type L to list all codes): 8e
# 保存修改並退出
w
格式化分區:
mkfs.ext4 /dev/sdb1
使用 shell 腳本在不進入交互式模式下分區:
#!/bin/bash
echo "n
p
2
+100M
w
" | fdisk /dev/sdb &> /dev/null
if [ ${?} -ne 0 ];then
echo "分區失敗"
else
fdisk -l | grep /dev/sdb
fi
parted:
選項:
-l # 查看系統硬盤設備信息
-h # 查看幫助信息
-v # 輸出軟件版本
# 對指定的硬盤進行操作, 進入 parted 的交互式命令行
parted # 進入交互式命令行, 如果沒有給定設備則默認操作的設備為 /dev/sda
parted /dev/sdb # 進入交互式命令行, 操作指定是設備
# 交互式命令行
help # 查看命令幫助
help [COMMAND] # 查看指定命令的詳細幫助信息
print # 打印分區詳細信息
字段說明:
Number # 分區編號
Start # 分區起始點
End # 分區結尾點
Size # 分區大小
Type # 分區類型
File # 文件系統(格式化之后才會有)
name # 分區名稱(gpt格式分區才有)
Flags # 分區標志
align-check TYPE NUMBER # 對齊分區, TYPE(min|opt)(min 最小,opt 最優), NUMBER 分區編號
mklabel,mktable LABEL-TYPE # 創建一個新的 LABEL-TYPE 類型的空磁盤分區表, 這個操作會清空該分區的所有數據
LABEL-TYPE: aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop
quit # 退出 parted 交互式命令行
version # 打印工具版本
mkpart # 創建一個新的分區(可以選擇交互式命令創建, 也可以使用非交互式創建)
name NUMBER NAME # 修改指定分區的 name(gpt格式分區才有)
resizepart NUMBER END # 修改分區結束位置
rm NUMBER # 刪除指定分區
select DEVICE # 切換正在操作的設備
toggle NUMBER FLAG # 設置指定分區的 flags
FLAG: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot
set NUMBER FLAG STATE # 設置指定分區的 flags 和 STATE
STATE: on, off
unit UNIT # 設置默認使用的大小單位
UNIT: s, B, kB, MB, GB, TB, compact, cyl, chs, %, kiB, MiB, GiB, TiB
示例: 在非交互式命令行界面進行分區操作
parted /dev/sdb mkpart primary 1 500
parted /dev/sdb p
