技術討論區 > Embedded 討論版

有方法可以自動完成fdisk嗎?

(1/2) > >>

andrew:
我想寫個shell script, 開機時偵測硬碟後
要自動分割和格式化最後要掛載到/

目前問題卡在分割, 我只知道fdisk指令,
但是他是交談模式的, 假設我只有一顆hda要分割,
而且全部切割成hda1, 可以有方法一行指令就自動完成嗎?

thyme:
man sfdisk
這我也是找了好久 -_-

netman:
對! sfdisk 很好用...
若你已有設計好的 fstab , 一下子就做好了...  ^_^

andrew:

--- 引述: "thyme" ---man sfdisk
這我也是找了好久 -_-
--- 引用結尾 ---


thyme前輩您好:
很感謝你幾乎real-time的回答(超快的)

我查了一下資料, 最常用的方式是做備份:
ex: 先導出hda磁片的分區訊息

--- 代碼: ---#sfdisk -d /dev/hda > partitions.txt
--- 程式碼結尾 ---

檔案的內容大概會像是:


--- 代碼: ---# partition table of /dev/hda
unit: sectors
/dev/hda1 : start=       63, size=   160587, Id=83, bootable
/dev/hda2 : start=   160650, size= 24579450, Id=83
/dev/hda3 : start= 24740100, size= 14329980, Id=83
/dev/hda4 : start= 39070080, size=  1060290, Id= f
/dev/hda5 : start= 39070143, size=  1044162, Id=82
--- 程式碼結尾 ---


再使用hda的磁片分析訊息在hdc上建立分區

--- 代碼: ---#sfdisk /dev/hdc < partitions.txt
--- 程式碼結尾 ---



我的需求只是很單純的想把整顆硬碟切割成一個partition
所以我要應用的話, 是不是只要修改這個partitions.txt檔
修改start, size和id,
然後在執行shell script時, 再掃完硬碟後讓他執行
#sfdisk /dev/hdc < partitions.txt

只是我目前想到一個問題, 如果硬碟空間事先不知道的話,
或是可能會變動的話...那應該怎麼處理呢?

hata:
我之前寫的程式片段,可以參考看看:


--- 代碼: ---
s=`fdisk -l -u /dev/hda 2> /dev/null | grep heads`
  C=`echo "$s" | awk '{print $5}'`
  H=`echo "$s" | awk '{print $1}'`
  S=`echo "$s" | awk '{print $3}

--- 程式碼結尾 ---


--- 代碼: ---
echo -e "
  d\n1\nd\2\nd\n3\nd\n4\n
  n\np\n1\n\n$C1
  n\np\n2\n\n$C2
  n\np\n3\n\n\n
  a\n1\n
  w\nq" | fdisk /dev/hda

--- 程式碼結尾 ---

導覽

[0] 文章列表

[#] 下頁

前往完整版本