2016年7月25日月曜日

Ubuntu12.04 から Debian jessieへの移行記録、計画 ※実行中、編集中

2016-07-24から、自宅サーバをUbuntu 12.04からDebian jessie(8.5)に、
環境移行した時の私的記録、私的計画書です。

[Ubuntuでの作業]
Debianにもインストールすべきパッケージを逃さぬよう、~/ で
$ mkdir ubuntu_pkginfo ; cd ubuntu_pkginfo
$ dpkg -l > dpkg_l.txt
$ apt-mark showmanual > apt-mark_showmanual.txt
で必要そうなパッケージ一覧も取得しておいた。
apt-mark showmanual のパッケージ一覧は、過去に私が apt-get install 実行時に、
手動で自分が指定してインストール済みのパッケージと、
OSインストーラ等かいつのまにか apt-get install したパッケージのリストっぽい。
それから
/home や /etc
を中心に複数メディアにバックアップした。

現在のUbuntu環境を一定保持しつつDebian jessieをインストールする事にした。
現在の環境
RAID1(4台構成、全て同じ容量、同じパーティション、同じgrubインストール済)
からDebian用HDD2台を取り除いて
RAID1(2台構成、全て同じ容量、同じパーティション、同じgrubインストール済)
にした。mdの数だけ、mdadmの
--fail と --remove(Debian用1台目)
--fail と --remove(Debian用2台目)
--grow --raid-devices=2
という作業になる。

※関連
 http://動作実績.blogspot.jp/2013/10/linux-raid1ubuntu1204.html
 Linux ソフトウェア RAID1の障害復旧記録(Ubuntu12.04) 

Debian用HDD2台の物理ケーブル接続を残したまま、再起動の動作確認をしたら、
RAIDのdegraded状態扱いになってしまった。
「initramfs -u しなかったからか?」と考えて
degradedの警告を確認してUbuntuを起動し、
update-initramfs -u
して再起動したが症状はかわらず。
物理ケーブル接続を取ったら、期待通りにRAID1(2台)で起動できた。
update-initramfs -u は不要だった気がするがわからない。


[OSインストール作業]
debian-8.5.0-amd64-netinst.iso をUSBメモリーに書き込み、
Debian用HDD2台のみ物理ケーブル接続してUSBメモリーからブートし、
インストール作業本編開始。
若干こだわりのあるインストール作業をするため、
text mode の expert modeを選択した。
できれば、NIC(今回の場合Realtek)のドライバ(non-free)も別USBメモリーに書き込んで
準備しておくのが基本のようだ。
無くてもそれなりには動いた。ジャンボフレームとかで必要なのかな。
一応、あとで firmware-realtek パッケージをインストールしたら、
dmesg で確認できる NIC のエラーメッセージは消えた。

参考:
6.4. 見つからないファームウェアの読み込み
https://www.debian.org/releases/stable/i386/ch06s04.html.ja

Debianインストール時にNICドライバがない時の対応方法 | シーズクリエイターズブログ 
https://www.seeds-std.co.jp/seedsblog/783.html

・LANGはEnglish、LocationとkeymapはJapan,LocaleはUS
・rootのパスワード設定はなし。sudoのユーザを用意。
・RAID1(2台構成、全て同じ容量、同じパーティション、同じgrubインストール済)
・md0は512MB、あとはデフォルト
・md1は残り全部(約1TB)、optionは noatime,noadirtime、typeは largefile、superblockは 1%
 ※1%でも10GBあるが、使い切り寸前のときに異常な断片化が起こらぬよう確保が必要。
・パッケージは、non-free も使う。
・[software selection](tasksel)のメニューは、余計なパッケージを入れるので省略。
 ※SSH serverに目が行くが省略する。

[パッケージインストール作業]
RAID1で起動し、インストール済みパッケージ一覧を
apt-mark showmanual > /etc/opt/apt-mark_showmanual.os-firstboot.log
に保存した後、以下のパッケージをインストール、設定作業をした。
基本、ubuntuでバックアップした /etc を /etc/opt に展開して
ubuntuでも設定変更等行っていたファイルについて比較、編集、複写の作業。

## 基本パッケージ
bash-completion
iptables-persistent
mg
openssh-client
openssh-server
firmware-realtek

## md等のエラー通知用パッケージ
exim4
dovecot-pop3d
smartmontools

## PXE,iSCSI用パッケージ
dnsmasq
lighttpd
tgt

## qemu-kvm用パッケージ
bridge-utils
dtach
netcat-openbsd
qemu-kvm
uml-utilities
uuid

## 使わないので入れるのやめといたパッケージ
# memtest86+
# trash-cli

[NTP設定]
systemd-timesyncd というNTPのクライアント機能だけをもった
目的に沿ったデーモンが入ってるはずなので、これを使う。
# timedatectl status
これで時刻関連情報が表示される。
# timedatectl set-ntp true
これでntpが有効になる。NTPサーバの設定は
/etc/systemd/timesyncd.conf で行うようだ。

[ユーザ追加]
# adduser
でテキトーに。

[/etc/udev/rules.d/70-persistent-net.rules]
このファイルは、0byteの空でも無ければ更新追加してくれないらしい。

[tgtの自動起動]
$ systemctl status tgt
$ systemctl list-unit-files
でtgtの様子をみてみたが、デフォルトでは自動起動がdisableだった。
# systemctl enable tgt
で自動輝度をenableにした。

[QEMU (version 2.1.2) によるVMにWindows10(PRO)のインストール]
無償アップグレードの駆け込みでインストールした。
-cpu オプションの設定でハマってしまったが、結論としては、
hostのcpuが、Intel Celeron G530 (Sandy Bridge)なので、

# qemu-system-x86_64 -enable-kvm -cpu SandyBridge,check
warning: host doesn't support requested feature: CPUID.01H:ECX.aes [bit 25]
warning: host doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]

という結果だったから、

# qemu-system-x86_64 -enable-kvm -cpu SandyBridge,-aes,-avx,check
というcpu設定で作業すればインストール作業を難なく完了できた。

他の主要オプションは、
 -machine pc-i440fx-2.1,accel=kvm
 ※pc-q35-2.1 は、QEMU 2.6で廃止となっているので使わなかった
 -device virtio-scsi-pci,id=vioscsi
 ※Virtio Block だと、ディスク毎にPCIバス消費するが、
 ※Virtio SCSI だと、ディスク数に関らず1つで済むらしいので。
 ※インストール先の(仮想)HDD選択の段階でドライバを読み込んだ。
 -device virtio-net-pci
 ※ドライバは、(仮想)HDDから起動後にデバイスマネージャーでインストールした。

ISOファイルは
Win10_1511_2_Japanese_x64.iso
virtio-win-0.1.118.iso

を使った。

ちなみに、最初は
-cpu Nehalem,check
だとエラーがないので、
-cpu Nehalem,+invtsc,+rdtscp,+osxsave,+xsave,....,check
で積み上げていく方向でがんばってたが、インストール作業が初期段階で止まって進ますだった。


*追記*

-cpu SandyBridge,-aes,-avx

オプションでは、qemuコマンド実行後の初回OSブートは成功するが、OSリブートは失敗する。
ところが、なぜだか、

-cpu SandyBridge,-aes,-avx,-xsave,-osxsave

とすれば、OSリブートも可能となったので変更した。

仮想環境(KVM)でのwindows10が、一度起動した後リブートすると起動しなくなる - マイクロソフト コミュニティ
http://answers.microsoft.com/ja-jp/insider/forum/insider_wintp-insider_perf/%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83kvm%E3%81%A7/be8f1261-94aa-4a6b-afcf-9ed3ddeb625e


[Linux Software Raid の bitmap]
/dev/md1 のディスクアクセスが遅い気がしたので、
/proc/mdstat
をみてみたら /dev/md1 の項目にUbuntu使用時には見覚えが無い
bitmap というモノの項目があったので、使わないように変更してみた。
# mdadm --grow --bitmap=none /dev/md1

後でよく考えたら、WindowsからNIC、iSCSI経由でのアクセスにおいて
"遅い気"を実感した事から、Windows(Vista)のNICドライバが古い事だけが原因だったかもしれない。
当該ドライバも更新した後に、"遅い気"がする状態は解消したので。
Debian(Ubuntu)側のNICドライバが更新されて、ドライバの相性に影響があった可能性は否定できない。
とにかく、問題は解決した。

[Ubuntuをやめてしまった理由]
4年前、使い慣れたDebianからシェアを伸ばしていたUbuntu(12.04 LTS)に乗り換えた。
Ubuntuは基本使いやすいが、深堀するとDebianそのままでよかったのに・・・という事があり、
Debianに戻すことにした。non-freeもどんどん使う。