Upload
haruka-iwao
View
3.415
Download
1
Embed Size (px)
DESCRIPTION
at Kansai Debian Metting 69 Debian の自動化インストール preseed について、特にパーティションの切り方を説明します。
Citation preview
Preseeding Debian
Yuryu@Kansai Debian Meeting 692012/02/24
本日のあらすじ
自己紹介
Preseed
Partitioning
その他 troubleshoot
自己紹介
Yuryu (twitter: @Yuryu)
某社でインフラエンジニアしてます
potato → woody → ( 浮気 ) → Ubuntu(Gusty) → ... → Ubuntu(Precise)
会社では Debian 使ってます
好きなコマンドは xargs
Preseed
Preseed してますか?
Debian Installer の応答ファイル
すべての選択肢が選べる
PXE と組み合わせると強い
単体でも使えます ( 少々面倒 )
Preseed とは
locale=en_US language=en country=JP console-keymaps-at/keymap=jp106
keyboard-configuration/xkb-keymap=jp106 interface=eth0 hostname=debian
domain=local url=http://holo.yuryu.jp/preseed.cfg
DEBCONF_DEBUG=5
boot オプションの必要性
Preseed ファイルが読まれるのは、ネットワークの設定が終わってから
ネットワーク設定前にもインストーラーの質問はある
→ ブートオプションとして渡す
長いので手打ちは無理、 PXE を使う
expert install
expert options → automated install
途中で preseed ファイルを指定できる
とりあえず試すにはこっち
url
preseed ファイルの場所
http, ftp, tftp で指定
https は使えない (!)
ファイルの中身
「 d-i 項目名 指定」の羅列
ファイルの書き方
基本的にはサンプル通り
でも、いくつか落とし穴が ...
一番大変なのが partitioning
partitioning
partitioning
d-i partman-auto/choose_recipe
atomic - / 一発
home - /home だけ分ける
multi - /home, /usr, /var, /tmp
d-i partman-auto/expert_recipe
recipe
レシピ形式
レシピ名 :: 最低容量 (MB) 優先度 最大容量 FS パーティション内容 .
500 1000 -1 ext4 \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext4 } \ mountpoint{ /home }
容量
最大を -1 にすると空き容量をすべて使う
優先度は数字が大きなほうが低い
最小=最大にせず 100MB 程度の幅をもたせる
method
format
通常通りフォーマットして使用
swap
スワップパーティションとして使用
keep
何もせず区画だけ作る
ファイルシステム
容量の右側に書くものと、 filesystem{ }
基本的には同じ
ext[2-4], xfs, btrfs, jfs, linux-swap
keep のときは無視される (free でも ok)
お約束
冗長に見えても、省略できないもの
format{ }
use_filesystem{ }
filesystem{ ext4 }
ハマりました
primary
$primary{ } プライマリ必須指定
$logical{ } もありそう?
実は無い
省略すると logical になる
一行で書く
行末に \ を書いて、一行につなげて書く
\ の後にスペースがあるとそこで切れます
レシピ名
レシピ名が必須
partman-auto/choose_recipe とは無関係
expert recipe 使うなら書いてはいけない
何を書いても動作に関係なし ...
スペースの扱い
基本的にはスペース必須
開きカッコの手前はスペース不可
○ method{_format_}
☓ method_{_format_}
grep でパースしてるので厳格です ...
レシピ、認識されてる?
/tmp/expert_recipe
実際に使われたレシピが入る
その他条件文
$iflabel{ label } - ラベルが一致
$defaultignore{ } - LVM を使わない時無視
$lvmok{ } - LVM にしても良い
$lvmignore{ } - LVM の場合は無視
パーティション再利用
既存のパーティションを再利用
$reusemethod{ }
method(format, swap) が同一なら再利用
主に biosgrub, swap 向け ?
$iflabel{ label } と組み合わせる
http://lists.debian.org/debian-boot/2011/04/msg00333.html
その他 troubleshoot
d-i じゃない行もある
d-i で始まらない行もある
tasksel
popularity-contest
コピペ事故に注意
止まったら
syslog を確認
INPUT ... の行がパラメーター名
ログ
Alt+F4 のログ
インストール中 /var/log/syslog
インストール後 /var/log/installer/syslog
DEBCONF_DEBUG が必須
こわくないよ
debian installer の実態はシェルスクリプト
各ディレクトリを for で順に呼んでる
項目名で grep してみるとヒントが
debian/*.templates
debian-installer の各種パッケージの debian/*.templates
変数名、型、説明が揃ってる
リファレンス代わりになります
debconf-get-selections
インストール済み OS から設定を取得
debconf-get-selections --installer
デフォルト値も含めて大量に出る
必要な物を取捨選択する必要あり
Ubuntu 対応
基本的には同じ
いくつか追加の質問
d-i pkgsel/update-policy select none
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false
詳しくは https://help.ubuntu.com/lts/installation-guide/i386/preseed-contents.html
まとめ
困ったら syslog を観る
recipe はスペースに気をつける
DEBCONF_DEBUG=5 重要!
Questions?
Thank you!
@Yuryu