VirtualBoxにGentoo/Linuxのインストールしたときのメモ

VirtualBox仮想マシンにminimalのディスクからインストールを行います。

ざっくりしたメモです。

40GB程度のディスク、2GBのメモリ、ネットワークはブリッジで設定して仮想マシンを起動する。
キーボードは22のjapanを選択する。

パーティションの作成
fdiskでディスクを切ります。今回は簡単に3つに切った。

# fdisk /dev/sda

Device    Boot     Start       End   Blocks  Id System
/dev/sda1 *         2048   3907583  1952768  83 Linux
/dev/sda2        3907584  11720703  3906560  82 Linux swap / Solaris
/dev/sda3       11720704  83886079 36082688  83 Linux

フォーマット

# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda3
# mkswap /dev/sda2

ディスクをマウント

# mount /dev/sda3 /mnt/gentoo/
# cd /mnt/gentoo
# mkdir boot
# mount /dev/sda1 /mnt/gentoo/boot

2014/09/19 マウントのオプションを間違えていたので修正

# mount /dev/sda1 ,nt/gentoo/boot → # mount /dev/sda1 /mnt/gentoo/boot

Stage3の展開
時刻合せ

ntpdate ntp.nict.jp

Stage3の入手
コンソールブラウザでStage3を落とす。

# links www.gentoo.org/main/en/mirrors.xml

IIJのhttpを選択して
releases > amd64 > autobuilds > 20140522 > stage3-amd64-20140522.tar.bz2 でEnterするとダウンロードが開始される。

ファイルを落としたら展開、終わったら削除。

# tar xvjpf stage3-amd64-20140522.tar.bz2
# rm stage3*

portageの入手
同じくコンソールブラウザでportageスナップショットを落とす。

# links www.gentoo.org/main/en/mirrors.xml

snapshots > portage-latest.tar.bz2 とたどって落とす。

ファイルを展開

# tar xvjpf portage-latest.tar.bz2 -C usr/
# rm portage-latest.tar.bz2

ミラーの選択、ここもIIJを利用

# mirrorselect -ioH >> etc/portage/make.conf
# mirrorselect -ior >> etc/portage/make.conf

chroot
chrootしてディスク上の環境に移行。

# cp -L /etc/resolv.conf etc/
# mount -t proc none proc/
# mount --rbind /dev/ dev/
# chroot . /bin/bash
# env-update
# source /etc/profile
# export PS1="(chroot) $PS1"

プロファイルの選択
LXDEを使いたいので指定のないdesktopプロファイルを選択。

eselect profile list
eselect profile set 3

make.confの編集
CFLAGSのオプションを確認する

# cc -march=native -E -v - &1 | grep cc1
  • march=k8-sse3が出てきたのでmake.confのCFLAGSに追加
# nano /etc/portage/make.conf

内容はこんな感じ

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -march=k8-sse3 -pipe"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"
# These are the USE flags that were used in addition to what is provided by the
# profile used for building.
USE="bindist mmx sse sse2"
INPUT_DEVICES="keyboard mouse virtualbox"
VIDEO_CARDS="virtualbox"
LINGUAS="ja"
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"

GENTOO_MIRRORS="http://ftp.iij.ad.jp/pub/linux/gentoo/"

SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage"

カーネルコンパイル
とりあえずgenkernelで様子を見る。

# emerge --sync
# emerge gentoo-sources
# emerge genkernel
# genkernel all

その他各種設定

fstabの編集

# nano /etc/fstab
/dev/sda1    /boot           ext4   noauto,noatime  1 2
/dev/sda3    /               ext4   noatime         0 1
/dev/sda2    none            swap   sw              0 0
/dev/cdrom   /mnt/cdrom      auto   noauto,ro       0 0
/dev/fd0     /mnt/floppy     auto   noauto          0 0

今回はデバイス名で指定してる、UUIDで指定するのがトレンドらしい?

時刻の設定

# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

言語設定

# nano /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
# locale-gen

ホストネーム設定

# nano /etc/conf.d/hostname
hostname="Gentoo Linux"

ネットワーク設定

# ifconfig

アダプタ名を確認。今回はenp0s3だったのでこの名前を使ってネットワークを設定する。ついでにsshdの起動設定もやった。

# nano /etc/conf.d/net
dns_domain_lo="local.example.com"
config_enp0s3=( "192.168.10.15/24" )
routes_enp0s3=( "default via 192.168.10.1" )
# ln -s /etc/init.d/net.lo /etc/init.d/net.enp0s3
# rc-update add net.enp0s3 default
# rc-update add sshd default

キーマップの設定

# nano /etc/conf.d/keymaps
keymap="jp106"

パスワード更新

# passwd

sysogとcronをemergeする

# emerge syslog-ng
# rc-update add syslog-ng default
# emerge vixie-cron
# rc-update add vixie-cron default

ブートローダーの設定

# emerge grub
# cd /boot
# mkdir grub
# grub2-mkconfig -o /boot/grub/grub.cfg
# grub2-install /dev/sda

再起動
chrootから抜ける

# exit

アンマウント

# umount -l dev/
# umount -l proc/

この辺りで仮想マシンからminimalCDを外しておく

# reboot

一般ユーザーの作成

# useradd k_zoar -d /home/k_zoar
# cd /home
# mkdir k_zoar
# chown -R k_zoar:k_zoar k_zoar
# passwd k_zoar
# emerge sudo
# groupadd sudo
# visudo
%sudo   ALL=(ALL) ALL
# usermod -G sudo k_zoar

あれこれ入れる。

# emerge app-misc/screen
# emerge dev-vcs/git

LXDEXorg関係を入れる。

# emerge lxde-meta
# emerge xorg-x11
# emerge virtualbox-guest-additions
# emerge lxdm
# emerge twm
# emerge xf86-input-evdev

ディスプレイマネージャーを設定。

# nano /etc/conf.d/xdm
DISPLAYMANAGER="lxdm"

一応LXDEが起動するように設定。

# nano /home/k_zoar/.xinitrc
exec startlxde

dbusとxdmを自動起動するように設定。

# rc-update add dbus default
# rc-update add xdm default

これで仮想マシンの電源を投入するとLXDMでログインしてLXDEの画面が出てきた。

最後の仕上げです。

# emerge ruby ruby-gtk2 rubygems
# ln -s /usr/bin/gem20 /usr/bin/gem
# cd ~
# mkdir src
# wget -c http://mikutter.hachune.net/bin/mikutter.0.2.2.1537.tar.gz
# tar xzvf mikutter.0.2.2.1537.tar.gz
# cd mikutter
# ruby mikutter.rb
# gem install bundler

これでインストール完了をツイートすればGentooのインストールが完了します。