使用fdisk的Bash脚本

时间:2016-02-03 00:00:38

标签: linux bash

我遇到了这个bash脚本,在使用Packer制作的ami上使根卷更大之后扩展了fs。有人可以解释一下heredoc中fdisk选项的含义吗?

#!/bin/bash
fdisk /dev/xvda <<EEOF
d
n
p
1
1

w
EEOF
exit 0

谢谢!

2 个答案:

答案 0 :(得分:2)

要确定这些含义,请查看fdisk的内置帮助。细节可能因您的实施而有所不同;对我来说,看起来像这样:

Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

...这样:

  • d删除一个分区(可能是您的脚本是为fdisk版本开发的,如果只有一个分区,则没有提示删除哪个分区)。
  • n创建一个新分区。
    • p表示它是正在创建的主分区。
    • 1表示它应该是主分区#1
    • 1表示它应该从扇区#1开始
    • 以下空白行接受默认的结束部门
  • w将更改写入磁盘。

答案 1 :(得分:1)

尝试此操作并根据您的条件进行调整:

#!/bin/bash

HEREDOC_VAR_1='p q ' 
echo $HEREDOC_VAR_1

HEREDOC_VAR_2='n q ' 
echo $HEREDOC_VAR_2

echo "$HEREDOC_VAR_1" | fdisk /dev/xvda
echo "$HEREDOC_VAR_2" | fdisk /dev/xvda