Ubuntu20.04にKVM環境を構築

Ubuntu20.04上にKVMを構築したのでメモ。

以前CentOS7上にKVMを構築した時のメモはこちら
 

1.KVMをインストール

まずは必要ツールをインストール。
今回はGUIのvirt-managerを使うのでインストールしておく。

sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager libosinfo-bin libguestfs-tools virt-top

続いてKVMを実行するユーザーをlibvirt関連グループに追加する。
orenomemo のところは実際のユーザー名に変える。

sudo adduser orenomemo libvirt
sudo adduser orenomemo libvirt-qemu

ここまで来たら一度OSを再起動する。
次はVMのインストールへ。
 

2.VMのインストール

今回はCentOS8をVMとしてインストール。
インストーラisoをダウンロードしておく。

そして仮想マシンマネージャー(virt-manager)を起動。

virt-manager

起動したら「新しい仮想マシンの作成」を実行。

新しい仮想マシンの作成

あとはインストールで使うisoファイルをローカルから指定して進めて行く。

インストールソースを指定

CentOSインストーラが起動したら、あとは普通にインストールすればOK.

CentOS8 installer

とても簡単。
VirtualBoxより軽くて快適。

 

Ubuntu 20.04 で背景を単色にする

Ubuntu 20.04 LTS (Focal Fossa) のデスクトップ背景をただの単色にしたのでメモ。

19.10の時もそうだったけど20.04もGnome設定の背景を画像から「色」にできない。

というわけで下記のコマンドで設定。
色は16進数のHTMLカラーコードで指定すればOK

gsettings set org.gnome.desktop.background picture-uri ''
gsettings set org.gnome.desktop.background color-shading-type 'solid'
gsettings set org.gnome.desktop.background primary-color '#6B818E'

Ubuntu 20.04 の日本語入力をfcitx-mozcにする

Ubuntu 20.04 LTS の日本語入力をfcitx-mozcに変えたのでメモ。

19.10の時と同じ方法で出来た。
Ubuntu 19.10の日本語入力をfcitx-mozcにする

しかし画面右上のメニューから「Mozcツール」が起動しない。

mozcツールが開かない

という訳でアプリケーションランチャーの中からMozcツールを起動。

ランチャーから起動

キーバインドを「ことえり」にして、いつもの使い勝手になった。

Ubuntu 19.10 でChromeがフリーズする場合の回避策

うちのUbuntu 19.10 で度々Chromeがフリーズするのでメモ。

どうやらグラフィック周りの問題なのか?
とりあえず起動したいので、コンソールからGPUを無効にして起動。

$ google-chrome-stable --disable-gpu

起動したら、[設定] > [詳細設定] > [システム] > [ハードウェアアクセラレーションが使用可能な場合は使用する] をオフにする。

[ハードウェアアクセラレーションが使用可能な場合は使用する] をオフ

あとは chrome://flags を開いて、[GPU rasterization] を [Disabled]にしてブラウザを再起動。

GPU rasterization を無効化

これでChromeが固まる事はなくなった。

Amazon FireHD8からUbuntuにVNC接続して外付けモニタ代わりにする

VNCを使ってFireHD8タブレットをサブモニターにしたのでメモ

参考にしたのはここ。
Ubuntu 18.04 で Kindle Fire HD をサブディスプレイとして使う方法

まずはUbuntu 19.10に必要なツールをインストール。

sudo apt install -y tightvncserver x11vnc

うちのPCはAMD Ryzen搭載マシンなので、/usr/share/X11/xorg.conf.d/10-radeon.conf を編集する。

#/usr/share/X11/xorg.conf.d/10-radeon.conf
Section "OutputClass"
	Identifier "Radeon"
	MatchDriver "radeon"
	Driver "radeon"
	Option "VirtualHeads" "2" #追加
EndSection

ここで一旦ログアウトのち再ログインする。

続いてxrandrでディスプレイの確認。

$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 309mm x 173mm
#中略
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)

上記出力で言うと eDP がメインのモニタで DisplayPort-1 がサブモニタになる。

続いて gtf コマンドで Modeline設定を取得

$ gtf 1280 700 60

  # 1280x700 @ 60.00 Hz (GTF) hsync: 43.50 kHz; pclk: 72.38 MHz
  Modeline "1280x700_60.00"  72.38  1280 1336 1472 1664  700 701 704 725  -HSync +Vsync

このModelineの右側に出ている “1280x700_60.00” 72.38 1280 1336 1472 1664 700 701 704 725 -HSync +Vsync をこのあと使う。

そして xrandr でディスプレイを追加。
–nwmodeオプションの値は上記の [Modeline]の値
–addmodeオプションのディスプレイ名はさきほどxrandrで取得したサブモニタ [DisplayPort-1]
–最後の–left-ofオプションの値はメインモニタ [eDP]

$ xrandr --newmode "1280x700_60.00"  72.38  1280 1336 1472 1664  700 701 704 725  -HSync +Vsync
$ xrandr --addmode DisplayPort-1 1280x700_60.00
$ xrandr --output DisplayPort-1 --mode 1280x700_60.00 --right-of eDP

これでモニタの右側にデスクトップスペースが出来上がる。
上記のスクリプトはshファイルにして実行すれば楽だ。

そして x11vnc を起動して待ち受ける。

$ x11vnc

あとはこれにFireHDからVNC接続するだけ。

俺は VNC Client Free を使ってる。

VNC Client FreeからこのPCのの5900番ポートに接続すればOK。

接続すると最初は全く同じ画面が映るけど、Fireタブレットの画面を左へスワイプして右側のスペースを表示させればOK。

画面小さいけどslackの画面を出しておきたい時に重宝してる。

alienでrpmをdebに変換

rpmでバイナリしか提供されてないツールをUbuntuにインストールしかったのでメモ。

alien で変換可能。
まずはaptでインストール。

sudo apt install -y alien

rpmをalienで変換して、dpkgでインストールすればOK.

sudo alien hoge.rpm
sudo dpkg -i hoge.deb

これで助かった。

digコマンドで逆引き

digでIPアドレスからホスト名を逆引きしたかったのでメモ。

digに -x オプションをつければOK.

dig -x 203.0.113.1

または、IPアドレスを逆に並べて .in-addr.arpa を末尾につけるという方法もあるけどメンドクサイ。

dig 1.113.0.203.in-addr.arpa

-x でいいや

Ubuntu 19.10: Docker を使う

Ubuntu 19.10にDockerをインストールしたのでメモ。

Dockerのインストール

参考にしたサイトはここ。
How To Install and Use Docker on Ubuntu 18.04 | DigitalOcean

まずは必要なものをaptで入れる。

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

それからレポジトリを追加して、docker-ceをインストール。
19.10なのでeoan.

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu eoan stable"
sudo apt update
sudo apt install docker-ce

コンテナの実行

インストール出来たので、試しに公式のubuntuイメージをダウンロードしてDockerで実行する。

sudo docker pull ubuntu

ダウンロードしたイメージを実行。

sudo docker run -itd ubuntu

シェルに入りたい場合は、psでコンテナID/コンテナ名を調べてattachする。

sudo docker ps -l
CONTAINER ID    IMAGE       COMMAND     CREATED             STATUS                      PORTS   NAMES
34567890abcd    ubuntu      "/bin/bash" 18 minutes ago      Exited (0) 4 seconds ago            hardcore_heisenberg

上記の34567890abcdにattach

sudo docker attach 34567890abcd

これでrootログイン出来るので、あとは必要な環境を揃える。
例えばvimをインストールする。

apt install -y vim

コンソールから抜け出たい時は Ctrl+P を押してから Ctrl+Q で出れる。
Ctrl+Dを押すとコンテナが終了してしまうので注意。

コンテナを停止する場合はstop

sudo docker stop 34567890abcd

DockerHubにpush

変更したコンテナイメージをDockerHubにプッシュするにはまずはDockerHubでアカウントを作成しておく。

変更内容をcommit.

sudo docker commit -m 'vim installed' -a 'orenomemo' 34567890abcd orenorepo/myubuntu

ここでorenorepoがDockerHubのレポジトリ名でmyubuntuがイメージ名

ローカルのイメージを確認するにはimages.

sudo docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
oreno_repo/myubuntu   latest              1234567890ab        17 minutes ago      152MB

そしてDockerHubにログイン

sudo docker login -u orenorepo

最後にpush.

sudo docker push orenorepo/myubuntu

CentOS 6.5 に OpenVZ をインストール

LPIC 304の勉強ついでにOpenVZ環境をセットアップしたのでメモ。

CentOS7でやろうとしたら上手く行かなかったのでCentOS6.5を用意。
まずは下記サイトを参考にしてOpenVZをインストールする。

Install And Configure OpenVZ On CentOS | Unixmen

rootで作業する。

wget -P /etc/yum.repos.d/ http://ftp.openvz.org/openvz.repo
rpm --import http://ftp.openvz.org/RPM-GPG-Key-OpenVZ
yum install vzkernel

それから /etc/sysctl.conf を修正。
下記パラメータを変更or追加する。

# /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

続いてSELinuxをオフにするため、/etc/sysconfig/selinux を修正。

# /etc/sysconfig/selinux
SELINUX=disabled

そして関連ツールをインストール

yum install vzctl vzquota ploop

ここまで来たら再起動する。
再起動後にGRUBがデフォルトのOpenVZカーネルを起動する。

コンテナの作成。
CentOS7テンプレートを使う。
これまたrootで作業。

cd /vz/template/cache/
wget http://download.openvz.org/template/precreated/centos-7-x86_64-minimal.tar.gz
vzctl create 101 --ostemplate centos-7-x86_64-minimal

ここでいう101はコンテナのID。
以後このIDに対して操作を行う。

コンテナにIPアドレスを振る。
実機と同じネットワークを使う。

vzctl set 101 --ipadd 10.0.2.199 --save

コンテナを起動する。

vzctl start 101

コンテナのシェルに入る。

vzctl enter 101

ここでpasswdコマンドでrootのパスワードを作っておけば、vzctl consoleコマンドでログインも出来る。

vzctl console 101

VZコンテナコンソールから抜け出すには ESC を押してから . (ドット)を押せば抜け出せる。