LoginSignup
1
1

More than 5 years have passed since last update.

スクリプト内でpartedを使ってパーティション作成

Posted at

シェルスクリプト上でパーティションを区切る場面があったので、メモついでに
スクリプトでは対話でのパーティション作成は使えないので、非対話ができるものを調べた結果partedコマンドを使用しました。

partedはあまり詳しく理解できてないため、やり方のみを記述します。
スクリプトでパーティション作成を急いでる方や、その場しのぎでパーティション作成をしたい方などは見ていった方がいいかもしれません。

参考にさせてもらったサイト

https://qiita.com/ngyuki/items/93da394fd0847ed5155e
https://www.xmisao.com/2013/09/27/parted-warning-the-resulting-partition-is-not-properly-aligned-for-best-performance.html

パーティション構成

とりあえずLinuxが起動するような構成にしてあります。
HDDは500GB 、メモリは8GBを想定しています。

マウントポイント ファイルシステム サイズ (byte) デバイス名
/boot ext4 500 M /dev/sda1
/ ext4 490 G /dev/Vol00/LogVol00
swap swap 8 G /dev/Vol00/LogVol01

パーティションを区切る

---/bootのパーティション作成---

# parted -s -a optimal /dev/sda -- mklabel msdos mkpart primary ext4 2048s 501M set 1 boot on

2048セクタから始めないと警告が出ます。詳しくは参考サイトの2つ目を参照してください。


---/swapをLVMで作成---

# parted -s -a optimal /dev/sda -- mkpart primary 501M -1 set 2 lvm on

# pvcreate /dev/sda2
# vgcreate Vol00 /dev/sda2
# lvcreate -L 490000m -n LogVol00 Vol00
# lvcreate -L 8000m -n LogVol01 Vol00

ファイルシステムを作成

# mkfs.ext4 -j /dev/sda1
# mkfs.ext4 -j /dev/Vol00/LogVol00
# mkswap /dev/Vol00/LogVol01



これらをシェルスクリプトにまとめたら、僕と同じパーティション構成ができると思います。

ひとりごと

最初の/bootパーティションを区切る段階でext4を指定してるのでファイルシステムをわざわざ作らなくてもいいかな〜♪ って思っていたら、MondoRescueでマシンをリストアする際に/dev/sda1でエラー吐かれました。
/dev/sda1に結局ファイルシステムを作ることにしたけど、それだったらpartedの段階でext4の指定をしなくてもいいのでは、と思いながらも検証しませんでした。ごめんなさい

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1