debian の preseed.cfg で躓いた所

昨日に引き続き仮想マシン関連で、インストールを自動化しようと Debian の preseed.cfg をいじった記録。

一番大きな問題は apt のプロキシ設定で、ホスト名だけかと思ったらフル URL を入れる必要があったという話。
具体的には「d-i mirror/http/proxy string http://host:port/」と入れなきゃダメ。(port は apt-cacher-ng なら 3142)

あとはまあ、以下を変更するくらい。

  • d-i debian-installer/locale string ja_JP.UTF-8
  • d-i mirror/http/hostname string ftp.jp.debian.org
  • d-i time/zone string Asia/Tokyo
  • d-i clock-setup/ntp-server string jp.pool.ntp.org
  • d-i base-installer/kernel/image string linux-image-amd64
  • tasksel tasksel/first multiselect standard
  • d-i pkgsel/include string openssh-server

気分と趣味によっては以下も。

  • d-i netcfg/choose_interface select eth0
  • d-i netcfg/get_hostname string preseed-test
  • d-i netcfg/get_domain string vagrant.com
  • d-i apt-setup/non-free boolean true
  • d-i apt-setup/contrib boolean true

それから、「d-i keyboard-configuration/xkb-keymap select us」になっていても再起動後のキーボード設定は日本語になっており、なぜか「loadkeys us」も効かないようなので /etc/default/keyboard で「XKB_LAYOUT=”en”」にして再起動すると直る模様。ちなみに PuTTY とかで SSH 接続した場合は、設定してなくても問題無く英語キーボードで使える。

debian 7.6 に docker をインストール

docker がブームらしいという事で、仮想マシンの debian 7.6 にインストールしようとしたら躓いたのでメモ。

探してみた手順では以下のようになっていた。
$ sudo apt-get install -qqy ca-certificates
$ sudo apt-get install apt-transport-https
$ sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
$ sudo sh -c "echo 'deb https://get.docker.io/ubuntu docker main' | tee /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update && sudo apt-get install -qqy lxc-docker

ところが、この手順で apt-get update したところ、docker リポジトリが取得エラーになってしまった。メインマシンから https で対象サイトにアクセスすると、ちゃんと Packages が取得できてたので悩んだ。

色々試してみたところ、結局 docker.list の中身を次のように書いたら動いてくれた。
deb http://get.docker.com/ubuntu docker main
(サイトの「io」を「com」に、「https」を「http」に変更した)

wget では https でも取得できてるので、何故こうしないと動かないのかは不明。

追記:よく見たら関連リンクに 7.6 用の手順があった…

Linux で SSD

続けて投稿です。まあ、前のと併せて SSD 追加 → マウント という流れだっただけですが。

とりあえず Linux ではカーネル 2.6.33(CentOS 6は2.6.32にバックポートあり)から Trim コマンドに対応しているそうです。
ただし ext4 ファイルシステムでマウントオプションに「discard」を指定した場合のみとのお話なので要注意。

チェック方法としては、それぞれ次のようになります。

  • TRIM 対応状況(SSD側) 「hdparm -I /dev/sda | grep -i TRIM」
  • SSD かどうか? 「cat /sys/block/sda/queue/rotational」が 0 なら SSD
  • 使うI/Oスケジューラ「cat /sys/block/sda/queue/scheduler」
    •   基本的には「cfq」になっていますが、SSD の場合には「noop」や「deadline」にすると効率が良くなるという噂があります

 

また、以下に参考リンクをメモしておきます。

 

 

fstab で UUID を使う

また結構な間が空いてしまいました。

今回は /etc/fstab のマウント設定で UUID を使う方法です。
今更と言えば今更なのですが、これまでインストーラが書いてくれたものしか使っていなかったので、自分で設定するのは初めてでした。

fstab 側の書き方としては、デバイスパス(/dev/sda1 みたいな)の代わりに「UUID=xxxxxxxx」とすればいいわけです。が、その肝心な UUID の調べ方がサッパリでした。

まあ、ここ数年で検索すれば何でも見付かる状態になってくれたので、あっさり分かったのですが、いちおう備忘録ということで。

スーパーユーザで「blkid /dev/sda1」などとするか、直接「ls /dev/disk/by-uuid」で見えるそうです。

簡単なのですが、あまりに単純すぎてコマンド「blkid」やパス「/dev/disk/by-uuid」を忘れて、結局また探すことになる予感がします…