1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# 查看磁盘信息
lsblk

# list disk and partitions
sudo parted -l # -l, --list

# -a 分区对齐, 对齐类型
# -a, --align
sudo parted -a optimal /dev/sdx

# 查看磁盘分区
(parted) p
# set disk label
(parted) mklabel gpt
#or mklabel msdos

# 设置 单位为 s, MiB, GiB, MB,GB
unit mib

# 查看parted 命令帮助
help mkpart
# mkpart part-type fs-type start end
# fs-type 是文件系统类型,支持的类型列表可以通过 help mkpart 查看。 
# mkpart 并不会实际创建文件系统, fs-type 参数仅是让 parted 设置一个 1-byte 编码,让启动管理器可以提前知道分区中有什么格式的数据。

# 按比例分区, 可以不设置 unit xxx

mkpart 磁盘分区名称 起始磁柱值 截止磁柱值

# fs-type: ext4,fat32
mkpart primary ext4 0% 100%

# 指定分区名和起止位置,起点会自动设置成2048s
mkpart data 0% 100%

# 创建efi分区建议550M, linux的efi分区用fat32,系统分区不能用fat,fat会有各种问题,比如不允许使用冒号作文件名
(parted) mkpart primary fat32 1 551

# 设置efi分区标记
(parted) set 1 esp on

# 设置常规bios引导, esp is an alias for boot on GPT
(parted) set 1 boot on

# 给分区取个名字, msdos disk label do not support partition names.
name 1 boot

# 创建swap分区 16G+
mkpart primary 551 17536
name 2 swap

mkpart primary 17536 -1
name 3 rootfs

#检查是否分区对齐
align-check optimal 1

# 退出parted
(parted) q

# 查看磁盘信息
lsblk

# format partition, 格式化分区,把x替换成实际分区
# if mkfs.msdos command not found, pacman -S dosfstools
# 格式化efi分区
sudo mkfs.msdos -F 32 /dev/sdx1
#mkfs.vfat /dev/sdx1

sudo mkfs.ntfs /dev/sddx
# mkfs.ntfs command not found, sudo pacman -S ntfsprogs

# mkswap
sudo mkswap /dev/sdx2
swapon /dev/sdx2

# 格式化
sudo mkfs.ext4 /dev/sdx3
sudo mkfs -t ext4 /dev/vdb1
sudo mkfs.btrfs -L data0 /dev/sdx3

# 查看磁盘分区UUID, 没有root权限时, blkid没有输出, 要加sudo.
sudo blkid

genfstab -p -U /mnt > /mnt/etc/fstab

https://www.gnu.org/software/parted/manual/html_chapter/parted_2.html

https://www.gnu.org/software/parted/manual/html_node/mklabel.html

https://linux.cn/article-3167-1.html