ART*_*ART 18 linux scripting bash partition parted
我在脚本中使用以下命令对 eMMC 进行分区,
parted /dev/mmcblk0 --script mklabel gpt
parted /dev/mmcblk0 --script mkpart primary ext4 32MB 132MB
parted /dev/mmcblk0 --script mkpart primary ext4 233MB 433MB
parted /dev/mmcblk0 --script mkpart primary ext4 433MB 533MB
parted /dev/mmcblk0 --script mkpart primary ext4 533MB 593MB
parted /dev/mmcblk0 --script mkpart primary ext4 593MB 793MB
parted /dev/mmcblk0 --script mkpart primary ext4 793MB 3800MB
parted /dev/mmcblk0 --script align-check min 1
Run Code Online (Sandbox Code Playgroud)
创建第一个分区后,我收到以下警告
警告:生成的分区没有正确对齐以获得最佳性能。
我需要担心吗?我试过了,parted /dev/mmcblk0 --script align-check min 1但不确定那是解决方案。任何指示?
我正在浏览此链接,同时还有其他建议吗?
编辑:只是froschutz回复的快速参考,
MiB = Mebibyte = 1024 KiB
KiB = Kibibyte = 1024 Bytes
MB = Megabyte = 1,000 KB
KB = Kilobyte = 1,000 Bytes
Run Code Online (Sandbox Code Playgroud)
fro*_*utz 26
原则上是正确的,但您可能会考虑将其减少为单个parted调用。
parted --script /device \
mklabel gpt \
mkpart primary 1MiB 100MiB \
mkpart primary 100MiB 200MiB \
...
Run Code Online (Sandbox Code Playgroud)
您的对齐问题可能是因为您使用了MB而不是MiB. align-check在MiB边界上/在已知设备上创建分区时,您不需要实际命令。
我知道这已经很旧了,而且是一个很好的答案,因为您可以使用 MiB,但我想为其他人提供另一个选择。
在脚本调用(--script 或 -s 对于简短版本)中,您可以添加 -a 选项,该选项告诉它在创建分区时对齐并传递选项“optimal”。像这样的东西:
sudo parted -s -a 最佳 -- /dev/sdX mkpart 主要 1MiB -2048s
这只是从第一个 Mebibyte 开始并在磁盘末尾减去最后一个 Mebibyte 结束以将 GPT 表保留在适当位置的示例。