気の向くままに辿るIT/ICT/IoT
システム開発

Debian Jessie 8.8からDebian Stretch 9.0へアップグレード

ホーム前へ次へ
*BSD/PC-UNIX/Linuxって?

Debian Jessie 8.8からDebian Stretch 9.0へアップグレード

Debian Jessie 8.8からDebian Stretch 9.0へアップグレード

2017/06/23

 Debian 9 Stretchが2017年06月17日にリリースされたようなのでDebian 8 Jessieからアップグレードすることに。

debian $ sudo apt-get update
...
debian $ sudo apt-get upgrade
...
debian $

 Jessieとして、まず、お約束。

debian $ sudo vi /etc/apt/sources.list
...
debian $

 続いて/etc/apt/sources.listを必要ならバックアップを取りつつ、Jessie(jessie)部分をStretch(stretch)に変更。

debian $ cat /etc/debian_version
8.8
debian $ sudo apt-get update
...
debian $ sudo apt-get upgrade
...
debian $ cat /etc/debian_version
9.0
debian $

 Stretchとして、お約束。。。と言いつつ、メインバージョンもapt-get upgradeでアップグレードされるのでこの時点でバージョンアップの確認ができる。

Debian Jessie 8.8からDebian Stretch 9.0へアップグレード

debian $ sudo apt-get dist-upgrade
...
debian $

 Chapter 5. Issues to be aware of for stretchを見る限り、既に8.8にはなってるし、問題なさ気だった為、あとはdist-upgradeすれば大丈夫な模様ということでdist-upgrade。

 尚、アップグレードの時間は約2時間ほどですが、Stretchへのアップグレード中、changelogの確認のほか、Stretchでの各種変更に伴い、複数のパッケージ用構成ファイルを保持するかアップグレードするかといった確認を求められる(アップグレードが一時停止する)為、マメに画面を見ておかないといつまで経ってもアップグレードが終わらないので注意。

 デスクトップパソコンHP Pavilion Slimline s3140jpのDebianでは、途中、GRUBのアップグレードに失敗、それでも継続するかの確認を求められましたが、そこで継続を選択、後に複数セッション(ログイン)マネージャをインストールしている場合、デフォルトを決めるよう促され、決定、アップグレード完了後、普通に起動できたので今回のGRUBアップグレード失敗のメッセージは気にしなくてよい模様。

ノートdynabookではポカをやらかした

debian $ sudo apt-get -f dist-upgrade
...
libicu57:i386 (57.1-6) を展開しています...
dpkg-deb (サブプロセス): アーカイブメンバーを伸張しています: lzma エラー: 圧縮データが壊れています
dpkg-deb: エラー: サブプロセス <伸張> はエラー終了ステータス 2 を返しました
dpkg: アーカイブ /var/cache/apt/archives/libicu57_57.1-6_i386.deb の処理中にエラーが発生しました (--unpack):
'./usr/lib/i386-linux-gnu/libicule.so.57.1' の展開済みデータを '/usr/lib/i386-linux-gnu/libicule.so.57.1.dpkg-new' にコピーできません: ファイルまたはストリームの予期しない終わりです
libc-bin (2.24-11+deb9u1) のトリガを処理しています ...
処理中にエラーが発生しました:
/var/cache/apt/archives/libicu57_57.1-6_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
debian $

 一方、ノートパソコンTOSHIBA dynabook Satellite T30 160C/5WのDebianでは、Pavilionの際は出なかった気がしますが、アップグレード中、再起動を要するパッケージについて自動的に再起動するか否か問われ、yesとし、途中、-fフラグを指定しないと以後進めそうもなく、apt-get -f dist-upgradeしたのですが、今度は、何度やり直してもこのようなエラーで止まり、アップグレードを完了できていません。
(ただ、apt-get dist-upgradeをやり直すと順序が変わるようでアップグレードやインストールされるパッケージ数は徐々に減ってはいるようですが。)

 ちなみに-mや--force-yesを指定してもダメでした。

 Stretchからdpkgコマンドの名前が変更になるとあったような気がしますが、これに起因するのか???今のところ、よくわからず、調査中。

 なんでPavilionではいけたのにdynabookの方はダメなんだろう。。。?

 まぁ、明日にでもやろうと電源を落としました。

[2017/06/24]

 改めて電源を入れてDebianを起動しようと試みると途中で止まり、起動しない。。。リカバリーモードにしても同じ。。。こりゃだめか、dynabookについては新たにDebian 9 Stretchをインストールした方が早そう。

 dynabookはメインマシンですが、ラズパイをNASなど各種サーバにしてあり、まぁ良いのですが、Arduinoのライブラリ類はコピーしておかないと。。。複数バージョンあるから面倒・・・かな?

 dynabookで本来メインとしているNetBSDではDebianをオートマウントしているのでNetBSDを起動してみるとDebianがマウントされておらず、sudo mount -aするとDebianに相当するパーティションにアクセスできず、Live USBに入れてあるGPartedを起動、GPartedのメニューから(可能なら)修復してくれる[チェック]を選んで完了、再起動、今度は、NetBSDでDebianを自動マウントできており、Arduino関連をコピーし、バックアップしたので折を見てStretchをインストールするか、気が向けば、アップグレード途中のDebian起動を試みるかしてみようかと。

 あ!?dynabookの方は、つい、うっかり、sources.listでjessieからstretchに書き換えたあとにJessieのつもりで最後のapt-get update/apt-get upgradeしちゃったかも!?うわ、dynabookのDebianだけおかしくなった原因は、それだきっと。。。

 こりゃレアすぎて無理して復旧を試みることに意味はないな。。。Stretchをクリーンインストールすることにしよう。

 Debian系OSをUSBメモリ/GRUB2/GPTでマルチブートで書いたようにNetwork install from a minimal CDを、ISOブートできるようにStretch用のinitrd.gzとvmlinuzをゲットし、Live USBメモリにコピー、(GRUB 2の場合)grub.cfgを編集し、USBブートでStretchをインストール。

 と思ったら謎の「カーネルモジュールが見つかりませんでした。インストーラのこのバージョンで使っているカーネルと、アーカイブで利用できるカーネルバージョンにミスマッチが起きている...」といわれ、インストール失敗、強引に進めてみても「イーサネットカードが検出されませんでした...」で先へ進めず。

 ならばとJessieのISOとvmlinuz、initrd.gzが残っていたので、これで試すと同じところで同じメッセージ。。。なんだこれ?早くもSSDがいかれたか?

...
menulist 'LMDE 2'{
  set root=(hd0,3)
  set iso=/lmde-2-201701-mate-32bit.iso
  loopback loop $iso
  linux=(loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=$isofile
  initrd=(loop)/live/initrd.lz
  
}
...

 となると、Debianに嫌われたかもしれないので一応、distrowatchを眺め、あ、Debian2位まで上がってたか、だよね、でトップがUbuntuベースとDebianベースがあるLinux Mintと。。。Debian系強いな、Mintもネットインストールできればと常々思っているのですが、今回はそんなこと言ってられないのでDebianベースのMintであるLMDEをインストールしてみることに。

 そこでLMDE/MATEのisoをダウンロード、Boot a Mint .iso From Your Hard Drive Using Grub2 - with no DVD or USBとisomasterなどで参照した.isoファイル自体を参照するとvmlinuzやinitrd.lzのパスはcasper下ではなく、live下の模様、ただ、この変更だけだとkernel panicになってしまったり、(initramfs)に落ちたりしたので初心に戻り、Debian Liveのmenuentryを眺め、これだけでもダメだったため、Debian LiveベースのCloneZilla LiveのmenuentryGParted Liveのmenuentryと同じブートオプションとしてgrub.cfgをこのように編集したら、ようやくLMDE Liveが起動。

 デスクトップ上の[Install Linux Mint]アイコンをクリック、設定していくと「Debianと互換性のないYUMIとか使ってない?他のツールでも使ってISOをDVDとかのメディアにちゃんと焼いてね」といった旨の表示が出てインストール失敗。。。ISOブートできないのか?やり方が違ったのか?

 ぬぬぬ。。。はまってる・・・。

 こりゃ、しばらく、Debian Stretchに難なくアップグレードできたPavilionをメインにすることになりそうだ。。。(PavilionにはFedoraもあるが、Debianの方が、なんとなく性に合う、Arduinoやらなきゃ、ホントはdynabookのNetBSDがメインだからこれを使えばよいのだが、LinuxエミュレーションでArduino IDEを。。。というのを試してみるほどの元気もなく。。。Arduinoづいていたここ3〜4ヶ月、もっぱらDebianを使っていたというオチ。)

[2017/06/25]

 結局、ISOブートできず、仕方なく、検証用USBメモリのとあるパーティションにDebian StretchのISOをdd、GRUB(grub.cfg)で(hd0,x)/install.386/以下のvmlinuzとinitrd.gzを設定、USBメモリから起動、DHCP割当に失敗、再試行も失敗、手動設定するしかなくなり、なんとか接続、その後も、なんだかインストーラのパーティション操作の進行が変、書き込みメニューがスクロールしないと見えなかったりして更にハマるも、なんとかベースシステムのインストールまで進んだ。。。と思ったら、選択肢で何(どこの国のどのミラー)を選んでも「正しくないアーカイブミラーです」と表示され、先へ進めず。。。なんだこれ・・・。

 Stretchからは、リポジトリにおいてftpは廃止、httpとなったらしいことが関係しているのか、その一方でリストにftpしか出てこないからエラーになるのか、一体どうなってるんだ。。。Debian。。。

 んー、、、仕方ない、、、Linux Mint(LMDE)をddしてインストールしてみるか。。。と同じUSBメモリの他のパーティションにLMDEのISOをddしてみました。

 さて、起動、と思いきや、間違えてDebianインストーラを起動してしまい、ついでなので試しにもう一度チャレンジ、2個検出されたネットワークインタフェースの内、先と違う選択肢を選んだら、[ソフトウェアの選択とインストール]まで進み、よい感じ。。。お、インストール完了、再起動後、Debian 9 Stretchにログインできました。。。選択したネットワークインタフェースの問題だったのか。。。

 というわけでsuしてsudo設定(グループsudoにユーザーを追加、/etc/sudoersファイルを編集)、/etc/hostsを編集、xserver-xorg-input-synaptics、FileZilla、Bluefish、Conky、rsync、tigervnc-viewer...等々、必要なパッケージをインストール。

 dynabookのタッチパッドを有効にすべくStretchでもxserver-xorg-input-synapticsをインストールすると/usr/share/X11/xorg.co/70-synaptics.confが作成される模様、追加設定は、/etc/X11/xorg.conf.d/以下で同名のファイル、もしくは、例えば、99-で始まる任意のファイル名などにして追加設定。(設定内容やその意味、Conkyの起動設定などもdynabookにDebian Jessieをインストールを参照。)

 これでサーバとしているラズパイにアクセスできるので一度、ローカル編集ファイルをrsyncを使ってダウンロード、rsyncアップロード用スクリプトを作成、tigervnc-viewerでラズパイにアクセス、メールチェック確認も完了。

 FileZillaのFTP設定、Arduino IDEの最新版をArduino.ccからダウンロード、展開。

 というわけでdynabookをメインに戻すことができました。

[2017/06/26]

 あれ?基本有線だからよいが、Jessieでは使えていたRalinkチップのBUFFALO UC-WLI-GNM2、Stretchでは、ファームウェアも入れたが接続できないな。。。なんでだ。。。?

 JessieからStretchにアップグレードしたPavilionの方は、アクセスポイントに接続はできていてファームウェアにはfirmware-ralinkがそのまま使われていて、Jessieで設定していたwlan0でifconfigで確認するとIPも割り振られていてpingも通るが、ネット(外)には、つながらない。。。

 アクセスポイント接続元はスイッチングハブであり、そこからの有線は外につながっているし、一応接続ポートを変えてみたが、内側にはつながるため、いずれにしても、アクセスポイント、スイッチングハブやLANケーブルが原因ではないはず。。。アップグレード前のJessieではつながっていたため、Stretchへのアップグレードに起因すると見て良さ気。

 一方、Stretchをクリーンインストールしたdynabookでは、Debianで無線LANの手順を踏襲しつつ、Stretchからファームウェアがまとめてfirmware-misc-nonfreeに収録されるようになったらしいので、これを入れてみたが失敗、dmesgを見ると、カーネルで定義されているはずのphy0などに関連付けられているのに、そのネットワークインタフェースを認識できていない模様でIPアドレスも割り当てられなければ、アクセスポイントへの接続もできない。。。やはり、原因はStretchか、はたまたLinuxカーネルか。

 一度、上書きインストールしたdynabookの方もsources.listをjessieに戻してfirmware-ralinkを入れてみても状況は変わらず。。。

 ん?DHCPを再起動しようと思ったが、dhcpcdやdhclientも使ってなさ気...debianもこういうの使ってたよね?あれ?違ったっけ?どうやってるんだったっけ?

 カーネルとの相性か?と思いつつ、クリーンインストールした方は、古いカーネルがあるわけもなくあとから入れようと思ったら展開するだけでよいのか?方法がよくわからない。。。アップグレードできた方は、firmware-ralinkが入っているが、古いカーネルで起動させても無線は同じ状況で繋がらない。。。firmware-misc-nonfreeをインストールしてもdmesgを見る限りネットワークインタフェースもwlan0で関連付けらていてifconfigで見るとIP割当されており、pingは通るも、やはり、外にはつながらない。。。なんで?

[2017/07/15]

 Debian Stretch(9.0)で無線LAN接続できない件が解決。

 原因は、なぜか、dhcpクライアントがStretchのクリーン(新規・上書き)インストールだとインストールされない、Jessieからのアップグレードだと既存のものが削除されて改めてインストールされないこと(パッケージ名が微妙に変わったことに起因した見落としによるバグの可能性もあるかも?)という、わかってみれば極めて単純なことでした。

 よってdhcpクライアント(dhclientばかりでなくdhcpcdもないが、dhcpcd、dhcpcd5コマンドを実行可能となるdhcpcd5パッケージがあるのでこれ)をインストールし、下記手順を確認・実行すれば、その時点及びマシン再起動後もwpa_supplicantを使った無線LAN接続に成功します。

  1. debian~$ sudo apt-get install dhcpcd5
  2. debian~$ dpkg -l | grep -i firmware
    firmware-misc-nonfreeかfirmware-ralinkの存在を確認
    (なければ/etc/apt/sources.listにdeb http://http.debian.net/debian/ stretch main contrib non-freeを追記の上、apt-get update && apt-get installでインストール)
    (当然、自身のUSB接続Wifiチップがこれらファームウェア群に含まれていることが前提、含まれていない場合は必要なファームウェアをインストール)
  3. wpa_supplicant.confの存在と内容を確認
  4. debian~$ sudo systemctl restart networking.service
  5. debian~$ sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
  6. debian~$ sudo dhcpcd wlan0

* Stretchを新規でインストールした場合、dmesgで関連付けられているネットワークインタフェース(phy0)だと、なぜか、うまくいかない模様なのでWifiドングルをUSBポートに装着、sudo ifconfig(/sbin/ifconfig)で表示されるネットワークインタフェースを使用・指定する。

* -Dオプションは指定しなくても自動判別してくれる。

* dhcpcd5とfirmware-misc-nonfree以外の部分は、Debian Jessieで無線LANと同様。

* ちなみにiwはあるが、iwconfigがないという場合は、wireless-toolsパッケージをインストールすれば利用可能となるが、少なくとも自身の環境では、このパッケージがなくても無線LAN接続はできる。

* ただし、なぜか、各種GUIネットワーク接続ツールとはリンクせず、アクセスポイントが表示されてもGUI上には接続中の情報は表示されず、GUIから接続を試みると実際にそうなるかどうかは別として切断されたりするのだが、この点については未調査、原因不明。

[追記:2017/07/22]

* Stretchのクリーンインストール、JessieからStretchへのアップグレードマシン何れにも少なくともwheezyなど以前のバージョンから存在していた模様のisc-dhcp-client/isc-dhcp-commonというパッケージは入っていましたが、wifi接続できなかったため、前述の手法を使うに至ったわけですが、設定次第では、これらでもいけるのかも?ざっと、ぐぐってみても、そんな情報は見当たりませんでしたが、もしかしたら、むしろ、それがStretchのデフォルトのお作法だったりするのかも???

[2017/06/27]

 ん?一度は効いていたはずのMATEでdynabookのタッチパッドでマウスの移動はできるが、クリックが効かなくなった。。。

 さすがArch Linuxドキュメント、xorg.conf.d/70-synaptics.conf が MATE で適用されないから最終的にSynaptics タッチパッド > 高度な設定の内、xserver-xorg-input-synapticsに含まれるSynclientを利用、synclient -lとした結果と[/etc/X11/xorg.conf.d/70-synaptics.conf]を見比べるとTapButton1の値が0となっていたため、synclient TapButton=1としたら、MATE上で即、タッチパッドのクリックが効くようになりました。

(MATEではデフォルトでxorgのタッチパッド設定を上書きされ、システムコントロールパネルからグラフィカルに設定できない機能も含まれるため、dconf、Synclient、xinput等々で再設定を要するケースがあるとのこと。。。ってJessieのときはそんなこと・・・と思ったら、dynabookのDebianでは、LXDEしか使ってなかったからか。。。いや、PavilionのDebianには各種デスクトップ環境を入れていたし、一通り使ってみてそんな事象に遭遇したことはないはずだが。。。って家のPavilionはデスクトップだからタッチパッドないんだった。。。)

 ただ、「synclientでテスト後は、/etc/X11/xorg.conf.d/70-synaptics.confに追加することで設定を永続的にすることができます。」とありますが、再起動すると有効にならなかったため、Debianデフォルトシェルであるbashの構成ファイル.bashrcに先の設定コマンドを追記することで(ユーザー用に)永続化することにしました。

 と思ったら、そんなことしなくても後述のようにメニューから[マウス]を選択すれば、[タッチパッド]タブで設定できました。(そうそう、これこれ、確かに今までこれで設定してたんだよ、なんで探しても見当たらなかったんだろ。。。)

 更にStretchクリーンインストール後、これまたちゃんと使えていたLXDEでlxpanelが点滅し、最終的に表示されず、ほとんどの操作ができなくなりました。

 前にもあったような気がして自分のサイト内をぐぐってみるとdynabook Satellite T30 160C/5W NetBSDリポジトリに収録されたLXDE/MATEを追加インストールに答えがあり、やはり、当時もArch Linuxドキュメントに助けられていました(感謝)。

 詳細はリンク先に譲りますが、desktop.confに数行追記しないと「lxpanel や pcmanfm などが lxsession で正しく起動しない」由。

 あとConkyのフォントが潰れることがあり、~/.conkyrcでフォントサイズを指定し直したりしないと直らず、しばらくすると、またConky表示の一部、またはすべてのフォントが潰れているという状況に。

 あとは、Debian StretchのLXDE上だとFirefoxやPlumaなど(GTK系の?)一部パッケージのスクロールバーの上下(左右)の三角アイコンがなくなり、バー上のスライドかクリック、もしくは上下に関してはキーボード操作によるページアップ・ダウンしか使えず、バー上のクリックは感覚的に難しくて嫌とか、ウィンドウのサイズ変更が引き継がれないのが気にはなりますが、まぁ大勢に影響はなしということで。

 と思ったら、一度、シャットダウン、しばらく(数時間経過)してから起動したところ、追記した内容などはそのままも、LXDEは同じ症状でlxpanelが表示されず、MATEもそのままではタッチパッドのクリックが効かず、端末(MATE端末に限らずLXTerminalでも)を起動するとタッチパッドのクリックが効くようになる(端末を起動しないとタッチパッドが効かない)という状況に。。。

 あ、MATEは、[システム] => [設定] => [ハードウェア] => [マウス]の[タッチパッド]タブにある[タッチパッドでのマウスクリックを有効にする(M)]にチェックを入れたら、再ログイン後も機能しました。。。そうそう、これがあったはずと思い、このパネルも何度も見たけど[タッチパッド]タブがなかったんだよな。。。見落としてたわけじゃないと思うんだけど。。。やっぱり、見落としか。。。

 う、LXDEのlxpanelは、~/.config/lxsession/LXDE以下ではなく、/etc/xdg/lxsession/LXDE以下のdesktop.confに先の追記をすれば、表示されるようになりました。。。ユーザーだけの問題じゃないもんね。。。勘違い...か、いや、それでも一度シャットダウン、LXDE起動、パネル点滅、結果、表示されず。。。最初に同状況になった際、LXDEの再インストールもやってみたものの、症状は同じ。。。謎。

 lxpanelが表示されないのは、クリーンインストールした方だけ。。。なんでだろ?

[2017/09/15]

 あたたたた...net-toolsパッケージ(ifconfig、netstat、route等々)が非推奨になり、iproute2が標準となったという話、今日初めて知りました...あれから約3ヶ月、Arduinoの関係でdynabookでDebianばかり使っていましたが、あれほど使っていたifconfigもdynabookでは奇跡的に使うこともなく、ifconfigがないことに全く気づかず...。

 というのもPavilionの方は、Jessieからのアップグレードに成功したため、net-toolsもありつつ、iproute2が追加されたようでアップグレード当初、ifconfigも使えた一方、dynabookはstretchをクリーンインストールすることになったため、net-toolsがないと...あれ?アップグレード後、もしかして、無線LANが使えなかったのもそのせい?あ、いや、あれはPavilionでも使えなかったか...ま、そういえば、ここのところ、ネットワーク関連で困ることもなく、全くそのへんのコマンドはいじっていなかったからdynabookにそれらコマンドがないことに気づかなかったと...Debianに限ったことではなく、Linuxの傾向のようだけど、全然、そんな情報にかすりもしなかったのは、なんでだろ?

 それにしても、これもDebianには限りませんが、ノートPCをメインで使っている身としては、Linuxカーネル4.9含む以降が原因と言われるACPIエラー、マシン自体の挙動がおかしくなるのでマルチブートしているNetBSDにも影響があり、これで相当、困ってます...。

LINK

ホーム前へ次へ