virtualbox のゲスト Debian で nat ネットワークがつながらなかった件

掲題の通り、virtualbox で nat に設定したネットワークアダプタを用意してインストールすると、再起動後に外部ネットワークに接続できない状態になっていたので、開通させるまでの手順をメモ。

結論から言うと以下の 4手順で完了。

  1. ifconfig eth0 10.0.2.15 netmask 255.255.255.0
  2. route add default gw 10.0.2.2
  3. apt-get install ifupdown
  4. /etc/network/interfaces を編集
    • iface eth0 inet dhcp をコメントアウト
    • iface eth0 inet static
    • address 10.0.2.15
    • netmask 255.255.255.0
    • up route add default gw 10.0.2.2
    • down route del default gw 10.0.2.2

ここに行き着くまでに /etc/default/network をいじったり、何度も /etc/network/interfaces を書き直したり、手動で ip コマンドを叩きまくったりと大変だった…
特に /etc/network/interfaces を有効にするには ifupdown パッケージが入ってないとダメだと分かるまでに、だいぶかかってしまった。

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 接続した場合は、設定してなくても問題無く英語キーボードで使える。

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」を忘れて、結局また探すことになる予感がします…