出于QA目的,我需要能够通过bash脚本将驱动器分区为RHEL和SLES的30个或更多分区.
我曾尝试在BASH中使用fdisk通过"here document"执行此操作,但是您可以通过各种步骤进行猜测.我认为这是因为输入命令的时间发生在错误的时间并且不同步.我的脚本中的十分之一将正常工作.
我看过parted和sfdisk,并不真正了解如何使用这些工具.
我只使用过fdisk.
我的问题是,使用fdisk你可以一遍又一遍地说出"new partition + 1gb"这样的东西,这对我有用,因为在我的脚本中我不需要跟踪先前的分区或剩余空间或进行任何计算.每次运行此函数时,这只会从任何未使用的空间中创建一个额外的1gb分区.
有没有办法使用parted或sfdisk(或任何其他已经成为这些发行版的一部分的工具),以便我可以编写从1到x操作的循环脚本,而不必对剩余空间进行这种计算?有没有人有他们可以分享的任何例子?
这是我的一个功能的例子.在脚本开始时,我们询问用户要创建的分区数量,它们的大小(这对所有人来说都是静态的),以及FS的类型(如果有的话).此函数创建分区1到3,然后另一个函数处理扩展(第4),另一个处理第5到nn.
正如我之前所说,这个脚本功能齐全; 我的问题是,有时发送到fdisk的命令似乎到达了错误的时间,然后打破了整个脚本,从而破坏了任何自动化.
所以这些命令是这样发送的:
n
p
1
+1M
w
Run Code Online (Sandbox Code Playgroud)
我一直在阅读fdisk并且已经知道它不适合脚本编写,所以我看到的是,在脚本模式下,fdisk可能会要求p我的脚本已经认为是时候发送了1.
关于fdisk对我有用的事情是,在你指定分区号之后它已经计算了下一个空闲扇区,所以我此时要做的就是为我的开始发送一个空行,然后为我的总大小发送+ 1M.Parted和sfdisk看起来并没有像我所说的那样工作,我现在仍然很新,以了解如何在这个时候自动化这些工具.
Create1to3Primary_Func() {
Size=\+$partSize\MB
for i in {1..3}
do
echo " this loop i= $i"
echo "Creating Partition $i on $targetFull as $targetFull$i using Create1to3Primary_Func()"
rm -f /tmp/myScript
echo -e "n" >> /tmp/myScript
echo -e "p" >> /tmp/myScript
echo -e "$i" >> /tmp/myScript
echo -e " " >> /tmp/myScript
echo -e "$Size" …Run Code Online (Sandbox Code Playgroud)