这是我们的 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 作为对您的问题的评论所提到的:您应该添加一些错误检查代码。