内容
開発用にリソースの小さい(メモリ64MB,HDD64MB)DNSサーバをVirtualBoxで構築する。
大まかな流れは以下の通り。
- VirtualBox VMの作成
- TinyCcoreをVMにインストール(HDDにインストール)
- ネットワーク設定
- OpenSSHのインストール、設定
- dnsmasqのインストール、設定
構成
▼環境
項目 | 内容
----+----
VirtualBox | 5.0.20 r106931
ホストOS | Windows 10 Home Edition
ゲスト OS | TyneCore v7.0 Core(10 MB) kernel 4.2.9-tinycore
ゲスト IPアドレス |192.168.1.100
dnsmasq | version 2.55
▼VM設定
大項目|小項目 | 内容
----+----+----
システム | メモリ | 64MB
システム | 起動順序 | 1st 光学, 2nd HDD
ディスプレイ | ビデオメモリー | 10MB
ストレージ | HDD (SATA) | 64MB
オーディオ | オーディオの有効化 | OFF
ネットワーク | 割当| ブリッジアダプタ
TinyCoreに関するメモ
- ファイルの保存設定をしないと、OS再起動後に削除される。
-
/opt/.filetool.lst
に保存対象のディレクトリを記載 -
filetool.sh -b
でバックアップ
-
- スタートアップ時(OS起動時)に実行するコマンドは
/opt/bootlocal.sh
に記載する。 - シャットダウンは「sudo poweroff」
手順
-
TinyCoreのダウンロード
以下のページより、TinyCoreのインストーラをダウンロードする。
http://tinycorelinux.net/downloads.html
→ Core(10 MB)をダウンロード -
VM設定起動
VMを新規に作成後、起動する。 -
インストールツールの入手
HDDにインストールするためのツール「tc-install」を入手する。$ tce-load -wi tc-install
-
パーティション作成
OSをインストールするパーティションを作成する。$ sudo fdisk /dev/sda …(省略)… # →新規作成のnを入力 Command (m for help):n # →プライマリパーティションのpを入力 Command action e extended p primary partition(1-4) p …(省略)… # →パーティション番号1を入力 Partition number (1-4):1 # →全領域を指定するので、デフォルト値を使用。 # 値を入力せずEnter First cylinder (1-4, default 1): # 値を入力せずEnter Last cylinder or +size or +sizeM or *sizeK (1-6 default 6): …(省略)… # wで書込 Command (m for help):w # /dev/sda1ができていることを確認 $ fdisk -l
-
TinyCoreのインストール
TinyCoreをHDDへインストール$ sudo tc-install.sh …(省略)… Core Installation. Install from [R]unning OS, from booted [C]drom, or from [I]so file. (r/c/i): c # → インストーラはcdromとしてマウントしているので「c」を指定。 …(省略)… Select Install type [F]rugal, [H]DD, [Z]ip. (f/h/z): f # →「f」を指定する(通常インストール)。 # ※「h」「z」はUSBメモリから起動する場合に指定。 …(省略)… Select Target for Installation of core 1. Whole Disk 2. Partition Enter selection (1-2) or (q)uit: 1 # →1はディスク全領域、2は指定したパーティションを指定。今回はディスク全領域を使うため「1」を指定。 …(省略)… Select disk for core 1. sda 2. sr0 Enter selection (1-2) for (q)uit: 1 # →sdaはHDD、sr0は光学ドライブ。HDDにインストールするので「1」を指定。 Enter selection (y,n) or (q)uit: y # →ブートローダのインストール有無。今回はインストールするため「y」を指定。 Select Formatting Opton for sda 1. ext2 2. ext3 3. ext4 4. vfat Enter selection (1-4) or (q)uit: 3 # →ディスクのフォーマット形式を設定。今回は「3」を指定。 Enter space separated boot options: Example: vga=normal syslog showapps waitusb=5 # →ブートオプションを設定。今回は何も設定しない。 # 入力せずにEnterキーを押下。 Last chance to exit before destroying all data on sda Continue (y/..)? y # →問題がなければ「y」を入力。やり直しが必要な場合は「y」以外を入力。 Press Enter key to continue. # →Enterキーを押下。 # 一旦シャットダウンし、VMの設定を変更。 $ sudo poweroff # VM設定 # 設定→システム→起動順序のファーストブートをCD→HDDに変更。 # 変更後、OSを起動。
-
ネットワーク設定
ネットワーク設定スクリプト「eth0.sh」を作成し、OS起動時に読み込ませる。# eth0.shの作成 $ vi /opt/eth0.sh # 以下の内容を記載(環境に合わせる) # ------------------------------------------ # #!/bin/sh # pkill udhcpc # ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 up # route add default gw 192.168.1.1 # echo "nameserver 192.168.1.100" > /etc/resolv.conf # echo "nameserver 192.168.1.1" >> /etc/resolv.conf # touch /usr/local/etc/ssh/sshd_config # ------------------------------------------ # スタートアップ設定 $ echo "sudo sh /opt/eth0.sh" >> /opt/bootlocal.sh # 永続設定 $ echo "opt/eth0.sh" >> /opt/.filetool.lst $ filetool.sh -b $ sudo reboot
-
SSH設定
今回はユーザ「tc」でログイン出来るように設定する。
# opensshのインストール $ tce-load -wi openssh # 必要があれば、以下を更新。今回はデフォルトで使用する。 # cd /usr/local/etc/ssh # sudo vi sshd_config # sshでログインするユーザのバスワード設定 $ passwd tc # 動作確認 $ sudo /usr/local/etc/init.d/openssh start $ ps -ef | grep ssh $ ssh tc@localhost $ exit # スタートアップ設定 $ echo "/usr/local/etc/init.d/openssh start" >> /opt/bootlocal.sh # 永続設定 $ echo "usr/local/etc/ssh" >> /opt/.filetool.lst $ echo "etc/passwd" >> /opt/.filetool.lst $ echo "etc/shadow" >> /opt/.filetool.lst $ echo "etc/group" >> /opt/.filetool.lst $ filetool.sh -b $ sudo reboot
-
dnsmasqのインストール・設定
# dnsmasqのインストール $ tce-load -wi dnsmasq # 設定の修正 $ vi /etc/nsswitch.conf # 以下の通り修正 # --------------------------------------- # hosts: files dns # ↓ # hosts: dns files # --------------------------------------- $ sudo vi /etc/hosts # 以下を追記 # --------------------------------------- # 192.168.1.100 tce-dns # --------------------------------------- $ sudo cp /usr/local/etc/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf # 必要があればdnsmasq.confを修正。今回はデフォルトを使用。 # スタートアップ設定 $ echo "sudo /usr/local/sbin/dnsmasq -9 -d" >> /opt/bootlocal.sh # /etc/hostsファイルは.filetool.lstに書き込んでもOS再起動後にリセットされてしまうため、以下の仕組みを設定。 $ vi /home/tc/set_hosts # 以下を追記 # --------------------------------------- # 127.0.0.1 box localhost localhost.local # 192.168.1.100 tce-dns # --------------------------------------- $ vi /opt/bootlocal.sh # 「sudo /usr/local/sbin/dnsmasq -9 -d」の前に以下を追記 # --------------------------------------- # sudo cp /home/tc/set_hosts /etc/hosts # --------------------------------------- # 永続設定 $ echo "usr/local/etc/dnsmasq.conf" >> /opt/.filetool.lst $ echo "etc/nsswitch.conf" >> /opt/.filetool.lst $ filetool.sh -b $ sudo reboot # 動作確認 $ nslookup tce-dns
その他、TinyCoreの設定
-
日本語キーボードマップ
日本語キーボードマップ(jp106)をインストールし、有効化。# インストール $ tce-load -wi kmaps # スタートアップ設定 $ sudo echo "loadkmap < /usr/share/kmap/qwerty/jp106.kmap" >> /opt/bootlocal.sh # 永続化 $ filetool.sh -b $ sudo reboot