ジャンル不定の日記です。

久々にVirtualboxにArch Linux

最新のXfce試してみようと思ってUSBメモリのArch Linux環境作ろうかと思ったんだが、テスト環境ならVirtualbox上に作れば良いことに気づいたんで作った。

今回はVirtualboxの.vdiを母艦でマウントしてisoは使わずArch Linuxをインストールした。

VDIのマウントを調べたら、QEMUにqemu-nbdってコマンドがあって、
$ sudo modprobe nbd
$ sudo qemu-nbd -c /dev/nbd0 'Arch Linux.vdi'
こんな感じでマウントできる。
modprobeすると/dev/nbd0から/dev/nbd15までができて、qemu-nbdコマンドでVDIファイルを割り当てられる。
ファイルを割り当てたデバイスは普通にマウントできる。
$ sudo qemu-nbd -d /dev/nbd0
↑割当解除。

過去にVirtualboxにEFIのLinuxを入れた記憶はないんだが、今回はEFIにしたんだが、それで結構ハマった。

まず
$ sudo fdisk /dev/nbd0
で1番目のパーティションを1GBのEFで2番目のパーティションは初期状態の83で。
sudo mkfs.fat -F 32 /dev/nbd0p1
sudo mkfs.ext4 /dev/nbd0p2
フォーマット

$ sudo pacman -S arch-install-scripts
$ sudo mount /dev/nbd0p2 p2
$ sudo mount --mkdir /dev/nbd0p1 p2/boot
$ sudo pacstrap p2 base linux linux-firmware
インストールスクリプトを入れて、マウントしてbaseとかインストール。
archinstallってインストーラーができたみたいなんだが、いろいろインストールされちゃうみたいだったからarch-install-scriptsにした。
pacstrapとかarch-chroot使うのに必要。

以前もそうだったと思うが、稼働中のシステムからpacstrapするとだと思うんだが、この方法でlinuxをインストールするとInitramfsが作成されないんで、
arch-chrootした後にlinuxを入れるかmkinitcpioする必要がある。

$ su
# genfstab -U p2 >> p2/etc/fstab
fstabの作成だが、出力をリダイレクトするのでsudoじゃだめだった。

$ sudo arch-chroot p2
# pacman -S grub efibootmgr dhcpcd
# grub-install --target=x86_64-efi --efi-directory=/boot
# grub-mkconfig -o /boot/grub/grub.cfg
ゲストOS起動後にネットワーク使えるようにしておかないとめんどくさいがDHCP使うのに母艦もdhcpcdが入ってたんでdhcpcd入れた。systemctlでstartとかenableするだけでネットワークが使えるようになる。
あとGRUBを入れてEFI環境にするのにefibootmgrも必要そうだったんで入れた。
WikiのGRUBを見ながらやってgrub-installの後に再起動しちゃったんだが、grub-mkconfigでgrub.cfgを作らないと起動しないねw
WikiにEFIインストールの次にMBRの記載があったからcfgのとこ見落とした。

それでもGRUBが起動しないでVirtualboxのブートマネージャーになったんだが、
上の方法でインストールするとEFIブートローダーが
/boot/EFI/arch/grubx64.efi
にインストールされるんだが、
Virtualboxでは
/boot/EFI/BOOT/BOOTX64.EFI
以外をブートできないらしい。
cpしても良いぽいんだが、
# grub-install --target=x86_64-efi --efi-directory=/boot --removable
↑grub-installの際に--removableをつけるとブートローダーが/boot/EFI/BOOT/BOOTX64.EFIに作られるみたい。

Ctrl+Dでarch-chrootから出て、マウントしといたVDIのアンマウント
$ sudo umount p2/boot
$ sudo umount p2
$ sudo qemu-nbd -d /dev/nbd0

これでVirtalbox上のArch Linuxを起動できるようになったんだが、この記事書いてる途中で時間がなくなったんで中断してた。
さっき思い出したんで続きでxfce4を入れたりして試してみたんだが、
画面2個横並べでタスクバーは左に垂直バーにしたいんだが、KDEの場合はアイコンだけのタスクマネージャがいい感じなんだがxfceには古いバージョンだとdockbarxってのがaurにあって、ちょっと前のバージョンだとxfce4-taskbar-pluginってのがあったんだがなにか問題があってKDEの代替にならないと判断してたんだが、
今回試してみたらxfce4-taskbar-pluginが無くなってxfce4-docklike-pluginってのになってた。
でxfce4-docklike-plugin試したらKDEのアイコンだけのタスクマネージャの代わりに使えそうな感じになってた。

問題点としては、なにか設定が間違ってるのか、プリエディットって言うみたいなんだがfcitxの入力中文字列がアプリに表示されない。(確定すると入力される)
それとVirtualbox上だからだと思うんだが結構頻繁にフリーズする。

あと、Virtualboxのウインドウサイズは通知されてるみたいでゲスト側で設定すれば画面をフィットさせることはできるんだが、自動リサイズされない。
virtualbox-guest-utilsはゲスト側で入れて、ゲストモジュールは今はカーネル標準みたいで入れる必要ないみたいなんで入れなかった。
クライアント側でvboxservice起動して、
$ sudo VBoxClient-all
でクリップボードは共有された。
vboxserviceは時計同期だけ?


xfce4-docklike-pluginがいい感じなんでXfceはKDEの代わりに使えそうではあった。