■WheezyからJessieにアップグレードしてみた。(簡易版)
ちょっと使ってみた感想として以下3点。
今のところ大きな不具合は無さそう。
依存関係、特に「systemd」関連の管理がきちんと出来て無い印象。
サーバをアップデートするにはまだちょっと早い気がする。
■現在のバージョンの確認
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.8 (wheezy)
Release: 7.8
Codename: wheezy
$ cat /etc/debian_version
7.8
■今回は影響の少ないクライアント用途のWheezyが対象なので、
各ステップの細かい確認は行わないので、簡易版としました。
つまり、アップグレードに失敗したら再インストールの覚悟をするということです。
きちんとアップグレードするには事前に確認するべき項目が沢山ありますので、
公式ガイドを参考にしてください。
第4章 Debian 7 (wheezy) からのアップグレード
https://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.ja.html
■提供しているサービスはは後で設定の確認や動作確認をし、
必要に応じて修正するスキルがあるものとする。
今回はこの手順については省略する。
$ /sbin/runlevel
N 2
$ /sbin/chkconfig --list | awk '/2:on/ {print $1}' | column
acpi-fakekey dbus rmnologin
acpi-support fail2ban rsync
acpid gdm3 rsyslog
anacron gdomap saned
apache2 iptables schroot
atd logd ssh
avahi-daemon motd sudo
binfmt-support ntp vmware
bootlogs openbsd-inetd vmware-USBArbitrator
clamav-daemon postfix xen
clamav-freshclam pulseaudio xendomains
cron rc.local xrdp
■既存のシステムの最新化
$ echo "update upgrade autoremove autoclean clean_all" | \
sed -e 's/ /\n/g' -e 's/_/ /' | awk '{print "apt-get -y "$1}' | sudo sh
■2013年にWheezyをインストールした記録は残しておくことにする。
$ sed -e 's/\(^deb.*\)wheezy/\1jessie/g' \
-e 's/wheezy-updates/jessie-updates/' /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ jessie main
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main
deb http://ftp.jp.debian.org/debian/ jessie-updates main
deb-src http://ftp.jp.debian.org/debian/ jessie-updates main
■最も大きな変更点は「init」が「systemd」に置き換わることです。
その他の注意点は公式ガイドを確認してください。
第5章 jessie で知っておくべき問題点
https://www.debian.org/releases/stable/i386/release-notes/ch-information.ja.html
■jessieとしてアップデート
再起動するサービスの確認など、途中いくつかの操作が必要です。
$ sudo sed -i -e 's/\(^deb.*\)wheezy/\1jessie/g' \
-e 's/wheezy-updates/jessie-updates/' /etc/apt/sources.list
$ echo "update upgrade autoremove autoclean clean_all" | \
sed -e 's/ /\n/g' -e 's/_/ /' | awk '{print "apt-get -y "$1}' | sudo sh
$ sudo apt-get -y dist-upgrade
■トラブル回避のための修正
$ echo "ローカルで変更を加えたinitスクリプト"; \
dpkg-query --show -f'${Conffiles}' | sed 's, /,\n/,g' | \
grep /etc/init.d | awk 'NF,OFS=" " {print $2, $1}' | \
md5sum --quiet -c
ローカルで変更を加えたinitスクリプト
$ dpkg -l | grep -v ^ii | awk '/^rc/ {print "sudo apt-get purge -y "$2}'
sudo apt-get purge -y git
sudo apt-get purge -y libcupsdriver1:amd64
sudo apt-get purge -y libescpr1:amd64
sudo apt-get purge -y libevent-2.0-5:amd64
sudo apt-get purge -y libgnome-media-profiles-3.0-0
sudo apt-get purge -y libgssglue1:amd64
sudo apt-get purge -y libpq5
sudo apt-get purge -y libtirpc1:amd64
sudo apt-get purge -y openbsd-inetd
sudo apt-get purge -y printer-driver-pnm2ppa
$ dpkg -l | grep -v ^ii | awk '/^rc/ {print "sudo apt-get purge -y "$2}' | sh
$ sudo dpkg --configure -a
$ sudo dpkg-reconfigure locales
■Wheezyパッケージのままのアプリケーションを再インストール
バージョンを含むパッケージもあることで危険度が急激に増すため、この方法はお勧めしない。
個別に確認した方がベター。
$ dpkg -l | awk '/^ii.*wheezy/ {print $2}' | tr '\n' ' ';echo
libarchive12:amd64 libwireshark2 libwiretap2 libwsutil2 udisks unattended-upgrades wireshark wireshark-common
$ dpkg -l | awk '/^ii.*wheezy/ {print $2}' | tr '\n' ' ' | sudo apt-get install --reinstall -y `xargs`;echo
$ sudo dpkg --configure -a
■もう一度アップデートを実行。
$ echo "update upgrade autoremove autoclean clean_all" | \
sed -e 's/ /\n/g' -e 's/_/ /' | awk '{print "apt-get -y "$1}' | sudo sh
$ sudo apt-get -y dist-upgrade
$ dpkg -l | grep -v ^ii | awk '/^rc/ {print $2}' | tr '\n' ' ' | sudo apt-get purge -y `xargs`
$ sudo dpkg --configure -a
$ sudo dpkg-reconfigure locales
■再起動
$ sudo shutdown -r now && exit
■Jessie
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
$ cat /etc/debian_version
8.0
■サービスの確認
$ /sbin/runlevel
N 5
$ /sbin/chkconfig --list | awk '/5:on/ {print $1}' | column
acpi-fakekey dbus rmnologin
acpi-support fail2ban rsync
acpid gdm3 rsyslog
anacron gdomap saned
apache2 heartbeat schroot
atd iptables ssh
avahi-daemon irqbalance sudo
binfmt-support logd tgt
bluetooth motd vmware-USBArbitrator
bootlogs network-manager vtun
clamav-daemon ntp xen
clamav-freshclam postfix xendomains
cron rc.local xrdp
■不要なサービスの削除
$ sudo apt-get purge -y heartbeat avahi-daemon
■再起動したらgdm3が消えていたのでインストール
セカンドディスプレイの設定。
ところでClassicというかfallbackがサポートされなくなった。
■gnome-terminalが消えていたのでインストール
$ sudo apt-get install -y gnome-terminal
■ところでGnome-Terminalの透過も出来なくなっているので、
Gnomeはもう要らない。
デスクトップ環境をMATEに切り替える。
$ sudo apt-get install mate-desktop-environment
$ echo "update upgrade autoremove autoclean clean_all" | \
sed -e 's/ /\n/g' -e 's/_/ /' | awk '{print "apt-get -y "$1}' | sudo sh
■ACPI(電源管理)の警告
GRUBのオプションで「acpi=off」とする方法があるようだが、
警告は消えないのでスルー。
$ grep GRUB_CMDLINE_LINUX_DEFAULT=.*acpi /etc/default/grub || \
sed -e 's/GRUB_CMDLINE_LINUX_DEFAULT="/&acpi=off /' /etc/default/grub
$ sudo update-grub2
$ ls -l /etc/init.d/acpi* | awk -F\/ '{print "systemctl status "$NF}' | sh
● acpi-fakekey.service - ACPI fakekey daemon
Loaded: loaded (/lib/systemd/system/acpi-fakekey.service; static)
Active: active (running) since 日 2015-05-31 21:47:33 JST; 1min 31s ago
Main PID: 2756 (acpi_fakekeyd)
CGroup: /system.slice/acpi-fakekey.service
└─2756 /usr/sbin/acpi_fakekeyd -f
● acpi-support.service - LSB: Start some power management scripts
Loaded: loaded (/etc/init.d/acpi-support)
Active: active (exited) since 日 2015-05-31 21:17:52 JST; 31min ago
● acpid.service - ACPI event daemon
Loaded: loaded (/lib/systemd/system/acpid.service; disabled)
Active: active (running) since 日 2015-05-31 21:17:52 JST; 31min ago
Main PID: 979 (acpid)
CGroup: /system.slice/acpid.service
└─979 /usr/sbin/acpid
■無線LANドライバの警告対処
「ath9k」ドライバで動作するので、使用しない「netathrx」を削除
この警告は消える。
$ dmesg | grep ndis | tail -3 | sed -e 's/ could/\n&/'
[ 5.656766] ndiswrapper (load_sys_files:200):
couldn't prepare driver 'netathrx'
[ 5.657976] ndiswrapper (load_wrap_driver:103):
couldn't load driver netathrx; check system log for messages from 'loadndisdriver'
[ 5.667832] usbcore: registered new interface driver ndiswrapper
$ sudo lspci | grep -i ath
03:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)
$ sudo lspci -n | grep "rev 01"
03:00.0 0280: 168c:0034 (rev 01)
$ sudo lspci -d 168c:0034 -v
03:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)
Subsystem: Foxconn International, Inc. Device e052
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at c0500000 (64-bit, non-prefetchable) [size=512K]
Expansion ROM at c0580000 [disabled] [size=64K]
Capabilities: [40] Power Management version 2
Capabilities: [50] MSI: Enable- Count=1/4 Maskable+ 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel
Capabilities: [160] Device Serial Number 00-00-00-00-00-00-00-00
Kernel driver in use: ath9k
$ sudo ndiswrapper -r netathrx
$ dmesg | grep ndis | tail -3
[ 5.940091] ndiswrapper version 1.59 loaded (smp=yes, preempt=no)
[ 6.150234] usbcore: registered new interface driver ndiswrapper
■LSBの警告対処
「High-availability」関連のパッケージをpurge。
VMPlayerを起動して新しいKernelに合わせて再設定させる。
この警告は消える。
$ sudo cat /var/log/syslog | grep -i LSB
May 31 16:25:03 vmx-rdebian os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/sda1
May 31 16:25:03 vmx-rdebian os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/sda4
May 31 16:25:03 vmx-rdebian os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/sda5
May 31 17:52:25 vmx-rdebian os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/sda1
May 31 17:52:25 vmx-rdebian os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/sda4
May 31 17:52:25 vmx-rdebian os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/sda5
May 31 18:07:24 vmx-rdebian systemd[1]: Failed to start LSB: High-availability services..
May 31 18:07:32 vmx-rdebian systemd[1]: Failed to start LSB: This service starts and stops VMware services.
May 31 19:08:04 vmx-rdebian systemd[1]: Failed to start LSB: This service starts and stops VMware services.
May 31 20:18:35 vmx-rdebian systemd[1]: Failed to start LSB: ha_logd logging daemon.
May 31 20:18:35 vmx-rdebian systemd[1]: Failed to start LSB: This service starts and stops VMware services.
May 31 20:41:26 vmx-rdebian os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/sda1
May 31 20:41:26 vmx-rdebian os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/sda4
May 31 20:41:26 vmx-rdebian os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/sda5
May 31 20:42:26 vmx-rdebian systemd[1]: Failed to start LSB: ha_logd logging daemon.
May 31 20:42:32 vmx-rdebian systemd[1]: Failed to start LSB: This service starts and stops VMware services.
$ apt-cache search "High-Availability Linux"
heartbeat-dev - Subsystem for High-Availability Linux - development files
libheartbeat2 - Subsystem for High-Availability Linux (libraries)
libheartbeat2-dev - Subsystem for High-Availability Linux (development files)
$ sudo apt-get purge -y libheartbeat2
$ systemctl status logd.service
● logd.service - LSB: ha_logd logging daemon
Loaded: loaded (/etc/init.d/logd)
Active: failed (Result: exit-code) since 日 2015-05-31 21:17:52 JST; 56s ago
Process: 733 ExecStart=/etc/init.d/logd start (code=exited, status=5)
$ grep -i desc /etc/init.d/logd /etc/logd.cf
/etc/init.d/logd:# description: Startup script logd service.
/etc/init.d/logd:# Description: ha_logd is a non-blocking logging daemon.
/etc/init.d/logd:# Short-Description: ha_logd logging daemon
$ sudo systemctl disable logd.service
Synchronizing state for logd.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d logd defaults
Executing /usr/sbin/update-rc.d logd disable
insserv: warning: current start runlevel(s) (empty) of script `logd' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `logd' overrides LSB defaults (0 1 6).
■なくならないエラー、警告関連のメッセージ
以下は色々調べても対処方法が曖昧なため様子見とする。
$ dmesg | grep -i "error\|warn\|crit\|fail" | sed -e 's/ with/\n&/'
[ 0.413525] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM
[ 2.325118] usb 1-1.1: string descriptor 0 read error: -22
[ 7.492434] EXT4-fs (sda3): re-mounted. Opts: errors=remount-ro
[ 7.912637] ACPI Warning: SystemIO range 0x0000000000002040-0x000000000000205f conflicts
with OpRegion 0x0000000000002040-0x000000000000204f (\_SB_.PCI0.SBUS.SMBI) (20140424/utaddress-258)
[ 7.993152] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042f conflicts
with OpRegion 0x0000000000000400-0x000000000000047f (\PMIO) (20140424/utaddress-258)
[ 7.993163] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054f conflicts
with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140424/utaddress-258)
[ 7.993166] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053f conflicts
with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140424/utaddress-258)
[ 7.993170] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052f conflicts
with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140424/utaddress-258)
[ 8.504424] [drm:cpt_set_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder A
[ 8.504425] [drm:cpt_serr_int_handler] *ERROR* PCH transcoder A FIFO underrun
■後片付け
$ dpkg -l | awk '/^rc/ {print $2}' | sudo apt-get purge -y `xargs`
$ dpkg -l | awk '/^ii.*wheezy/ {print $2}'
$ sudo dpkg --configure -a
$ echo "update upgrade autoremove autoclean clean_all" | \
sed -e 's/ /\n/g' -e 's/_/ /' | awk '{print "apt-get -y "$1}' | sudo sh