Debian6の上で動作するVirtualBox 4.3.14内で、Arch Linux 2014.07.03 をインストールしました。その記録。
- Debian 6は「さくら VPS」1Gプラン上で動作しています。
- Arch Linuxは http://itouhiro.hatenablog.com/entry/20120907/vps の記事のDebian10.04の立場です。SSHトンネリングでアクセスします。
- 日本語環境はインストールしません。
手順は
http://note.chiebukuro.yahoo.co.jp/detail/n267693
を参考にしました。
基本システムをインストール
まずは 558MBのisoファイルをダウンロード。
VirtualBoxで仮想ディスクを作成し、isoをセット([Setting - Storage - Empty - CD/DVD drive - Choose a virtual CD/DVD file..])して、起動。設定は[メモリ 512MB, HDD 40GB, Audioなし] あとはデフォルトです。
Linuxのインストールは一般的には簡単なのですが、Arch Linuxは難しい感じです。それはインストール領域(パーティション)を自分で指定する必要があるから。
cfdiskを使います。
swap /dev/sda1
linux /dev/sda2
の2パーティションを作成します。
まずswap領域を 1 GBで作成。[New → Primary → 1024 → End → Type → 82]
残りの領域を linuxに割り当て。 [New → Primary → Enter → Beginning → Bootable] (このBeginning → Bootableはやらなくてよいかも。というかやってない)
[Write → yes → Quit]
確保した領域に対して、ファイルシステム・SWAP作成。
# mkfs.ext4 /dev/sda1 # mkfs.ext4 /dev/sda2 # mount /dev/sda2 /mnt # mkswap /dev/sda1 # swapon /dev/sda1
次はbase systemをネット経由で取得するらしい。mirror list のテキストファイルを編集します。
# vi /etc/pacman.d/mirrorlist
Japan を上に持ってきて保存。
それでは基本ファイルをインストール。
# pacstrap /mnt base base-devel
fstabを生成。
# genfstab -p /mnt >> /mnt/etc/fstab
/mntの中に入ります。
# arch-chroot /mnt
ロケールを編集して、「en_US.UTF-8 UTF-8」だけコメントアウトします。
# vi /etc/locale.gen
ロケールを有効化します。
# locale-gen # echo LANG=en_US.UTF-8 > /etc/locale.conf # export LANG=en_US.UTF-8
キーボード設定で日本語キーボードを設定「KEYMAP=jp106」します。
# vi /etc/vconsole.conf
タイムゾーンを設定します。
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # hwclock --systohc --utc
rootのパスワードを設定します。
# passwd
# pacman -S grub # grub-install --target=i386-pc --recheck --debug /dev/sda # grub-mkconfig -o /boot/grub/grub.cfg
ネットワーク設定です。DHCPで接続するよう指定。
# systemctl enable dhcpcd.service
電源OFFです。
# exit # umount -R /mnt # poweroff
GUI環境インストール
isoファイルを外します。
ネットワーク#2を[Host Only]で追加します。
ArchLinux起動。
一般ユーザーを追加。'sudo'を使用可能にするため、visudoで「foo ALL=(ALL) NOPASSWD:ALL」を追加。
# useradd -m foo # passwd foo # visudo
X Window Systemを導入。VirtualBox使用なのでデバイスドライバーは xf86-video-vesa。
# pacman -S xorg-server xorg-server-utils xorg-xinit xorg-xclock xterm # pacman -S xf86-video-vesa # pacman -S xfce4
途中、何か聞かれたら Y か Enter か Default で。
ディスプレイマネージャ(ログイン時からGUIになってるやつ)は導入しません。コンソールで起動して、必要なときだけ以下コマンドでGUIを立ち上げるのが私の使用法には合っているためです。
# startxfce4
「ログアウト」してXを終了。
ここまででArch Linuxを使えるようになりました。
このあとは、SSHトンネリングで使うための設定なので、人によっては必要ないです。
ネットワーク設定
ネットワーク設定します。
まずSSHサーバーを入れます。
# pacman -Ss ssh | less # pacman -Ss openssh # pacman -S openssh
ArchLinuxはインストールしただけじゃ起動してくれないようだ。Debianは起動してくれたのだけど。
# systemctl start sshd.service # systemctl enable sshd.service
ネットワークインターフェース #1, #2 ともにDHCPになってしまっているようなので、個別に設定します。
まずネットワークインターフェースの名前を調べる。今回の環境では #1は「enp0s3」、#2は「enp0s8」という名でした。
# ls /sys/class/net
IPアドレス割り当て状態を調べる。
# ip addr
DHCP設定を無効にしましょう。
# systemctl --type=service # systemctl stop dhcpcd.service # systemctl disable dhcpcd.service
一度ArchLinux再起動してもいいかも。
# reboot
ArchLinuxには、 systemctl と似た netctl というネットワーク設定ツールがあるので、それを使用します。まずはインストール。
# pacman -Ss netctl # pacman -S netctl
「enp0s3」は通常のインターネット接続に使うのでDHCP。「enp0s8」はSSHトンネリングのために導入したのでstatic IP。 それぞれの設定サンプルファイルをcopyして少し書き換えます。
# cp -p /etc/netctl/examples/ethernet-dhcp /etc/netctl/en1 # cp -p /etc/netctl/examples/ethernet-static /etc/netctl/en2
/etc/netctl/en1 の中身を書き換える。Interfaceの部分を変えただけです。
Description='A basic dhcp ethernet connection' Interface=enp0s3 Connection=ethernet IP=dhcp ## for DHCPv6 #IP6=dhcp ## for IPv6 autoconfiguration #IP6=stateless
/etc/netctl/en2 の中身を書き換える。
Description='A basic static ethernet connection' #AutoWired=yes Interface=enp0s8 Connection=ethernet IP=static Address=('192.168.56.102/24') Gateway='192.168.56.1' DNS=('192.168.56.1 8.8.8.8')
接続できるかテスト実行。
# netctl start en1 # netctl start en2
SSHトンネリング接続成功。
このネットワーク設定をArchLinux起動時に実行するよう指定。
# netctl enable en1 # netctl enable en2
SSHトンネリングしたとき、SSHログインできるまでが長い(1分ほど待たされる)のは以下の書き換えで解決。
--- /etc/ssh/sshd_config.orig 2014-04-21 04:38:44.000000000 +0900 +++ /etc/ssh/sshd_config 2014-07-30 15:48:49.351163875 +0900 @@ -114,3 +114,3 @@ #ClientAliveCountMax 3 -#UseDNS yes +UseDNS no #PidFile /run/sshd.pid
VNCも入れる。まずは一度起動して初期ファイルを ~/.vnc に生成させます。そのときパスワード入力も必要です。パスワードは入力したくないけど -passwd というオプションはないと言われるし‥‥
$ sudo pacman -S tigervnc $ vncserver $ vncserver -kill :1 $ vi .vnc/xstartup $ chmod 755 ~/.vnc/xstartup
xstartupの中身。
~/.vnc/xstartup
#!/bin/sh export XKL_XMODMAP_DISABLE=1 exec startxfce4
VNCサーバーの :1 は 192.168.56.102:5901 ポートでつなげる。PuTTYでSSHトンネリング設定すると、192.168.56.102:5901 にlocalhost:5902 でアクセス可能。
VNC起動。画面が出てくるまで1分待たされるのはソフト起動待ち?
$ vncserver :1
‥‥しかしここまでの設定だとSSHトンネリングは成功する一方、外部ネットワークにつながらない( ping www.google.com の応答がない)。
$ sudo netctl stop en1 $ sudo netctl stop en2 $ sudo systemctl start dhcpcd.service
すれば、一時的に外部につながるようになりますが、SSHトンネリング不可です。netctlのDHCPとdhcpcdのDHCPは何か違うのか‥‥
調べると、
$ sudo netctl stop en2
だけ実行すれば外部ネットワークにつながる( ping www.google.com の応答あり)と判明した。en2の何かわるいのか‥‥DNSかGatewayの記述がじゃまなのでは?
/etc/netctl/en2 の中身を書き換える。
Description='A basic static ethernet connection' #AutoWired=yes Interface=enp0s8 Connection=ethernet IP=static Address=('192.168.56.102/24') # Gateway='192.168.56.1' # DNS=('192.168.56.1 8.8.8.8')
こうすると、SSHトンネリングも可能で、しかも外部ネットワークにつながるようになった。
Linuxシステム[実践]入門 (Software Design plus)
- 作者: 沓名亮典
- 出版社/メーカー: 技術評論社
- 発売日: 2013/07/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (13件) を見る