Linux

如何編寫 mkfs 腳本詢問“是整個設備,而不僅僅是一個分區!繼續?”

  • August 2, 2012

我正在嘗試創建一個格式化 Amazon EC2 EBS 卷的腳本,以便可以掛載它。

從命令行看,它看起來像這樣:

> mkfs -q -t ext4 /dev/sdf
/dev/sdf is entire device, not just one partition!
Proceed anyway? (y,n) 

(命令是正確的;不需要為我的目的創建分區表)

我的問題:因為這個命令應該在自動腳本中執行,所以我不能在終端上提出這個問題;沒有人會回答,腳本會掛起。我該如何避免這種情況?

我試過:

> echo y | mkfs -q -t ext4 /dev/sdf

但這並不能解決問題。-q 選項也沒有區別。

手冊頁

  -F     Force mke2fs to create a filesystem, even if the specified device is not a partition on a block special device, or  if  other
         parameters do not make sense.

所以mkfs.ext4直接呼叫而不是 via mkfs,並添加-F參數以忽略此警告。

expect就是你要找的。嘗試這樣的事情:

#!/usr/bin/expect

spawn mkfs -q -t ext4 /dev/sdf
expect "/dev/sdf is entire device, not just one partition!\nProceed anyway? (y,n)"
send -- "y\r"

expect eof

引用自:https://serverfault.com/questions/413496