bash + 如何在 Linux 中自动创建磁盘分区

bash + 如何在 Linux 中自动创建磁盘分区

这是我们的 rhel 服务器机器的示例

lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sdb                  8:16   0   20G  0 disk /data/sdb
sdc                  8:32   0   20G  0 disk /data/sdc
sdd                  8:48   0   20G  0 disk /data/sdd
sde                  8:64   0   20G  0 disk /data/sde
sdf                  8:80   0   42G  0 disk
sdg                  8:96   0   42G  0 disk
sdh                  8:112  0   42G  0 disk

我们想为其他磁盘创建一个磁盘分区sdf,sdg,sdh,但所有这些过程都应该通过 bash 脚本进行,我们希望自动化该过程

首先这里是如何2为磁盘创建分区的示例sdf,因此在这个示例中我们创建两个分区,每个分区都有10G大小

步骤1(创建分区,每个分区10G)

parted /dev/sdf
GNU Parted 3.1
Using /dev/sdf
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel msdos
(parted) mkpart primary 0 10024MB
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I
(parted)  mkpart primary 10024MB 20048MB
(parted) quit
Information: You may need to update /etc/fstab.

步骤2(创建文件系统ext4)

mkfs.ext4 /dev/sdf1

mkfs.ext4 /dev/sdf2
   

现在我们得到了(预期结果)

lsblk

sdf                  8:80   0   42G  0 disk
├─sdf1               8:81   0  9.3G  0 part
└─sdf2               8:82   0  9.3G  0 part

我们可以自动化这个parted过程吗?或者也许通过其他方法(例如通过fdisk)?

为了在 bash 脚本中使用这个自动化过程

参考 -https://www.howtoing.com/create-disk-partitions-in-linux/

答案1

parted 可以选择使用脚本化 (--script/-s)。

您可以向程序发出多次调用来实现您交互输入的内容:

parted --script /dev/sdf mklabel msdos
parted --script /dev/sdf mkpart primary 1 10024MB
parted --script /dev/sdf mkpart primary 10024MB 20048MB

继续使用 mkfs...

提示:我在 1MB 上启动了第一个分区,以避免出现警告,这也是当今许多发行版的默认设置。

正如 MC68020 作为对您的问题的评论所提到的:您应该添加一些错误检查代码。

相关内容