VMがヘビィだ
docker とか LXC 使ってると、VMがヘビィに感じることがある。もっと手軽に仮想マシンを使いたいななどと思う。
UbuntuやDebianを仮想マシンで新規で作って、コンソールでテキストで扱えれば嬉しいわけです。
SSH経由で、VMを作成
SSHのテキストベースで、仮想マシンを作成し、そのまま コンソールでインストールするコマンド
virt-install というコマンドでぱぱっとVMを作成して、そのままインストールを開始できる。
ubuntu の場合
virt-install \ --name ubuntuLTS \ --ram 30029 \ --disk path=/var/lib/libvirt/images/ubuntu-1910.qcow2 \ --vcpus 4 \ --virt-type kvm \ --os-type linux \ --os-variant ubuntu18.04 \ --graphics none \ --location 'http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/' \ --extra-args "console=tty0 console=ttyS0,115200n8"
debian の場合
debian ならこんな感じだろうか。
virt-install \ --name ubuntuLTS \ --ram 30029 \ --disk path=/var/lib/libvirt/images/debian10.qcow2 \ --vcpus 4 \ --virt-type kvm \ --os-type linux \ --os-variant debian10 \ --graphics none \ --location http://ftp.kddilabs.jp/pub/Linux/distributions/Debian/debian/dists/buster/main/installer-amd64/ \ --extra-args "console=tty0 console=ttyS0,115200n8"
インストール画面はSSH経由で
tasksel で openssh-server を選ぶのを忘れないように
インストール時に、openssh-server を選ばないと、ログインできなくて詰みます。もちろんネットワーク設定が必須です。無いと詰み。
grub を無理やり変更すれば可能だけどめんどくさいので、 openssh-server のインストールを忘れないように。
インストール後に grub を編集します。
シリアル コンソール を使えるように、 grub を設定しておきます。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" ## GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200" GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
grub を更新しします。
sudo update-grub
これで、virsh からコンソールアクセスができる
virsh console ubuntu-vm
または
virsh console ubuntu-vm
でコンソールでログインができるようになる。VGA関連をバッサリ削れるのでだいぶ手軽に使えるようになる。
その他の方法
似たような方法でも、同じような目的を達成する事ができます。
Ubuntuのクラウド イメージ vmx Debian のクラウド イメージ qcow LXC /docker など
これらを使えば、コンソールで起動するVMを確保することができる。
軽量なコンテナでも良いんだけどVMが良いというときなど、TPOに合わせて使い分けていきたい。 何でもかんでもDockerが最高というわけでもないので