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

古いパソコンの再利用/Pavilion Slimline s3140jpにDebian wheezyのインストールとjessieへのアップグレード

ホーム前へ次へ
古いパソコンの活用方法は?

古いパソコンの再利用/Pavilion Slimline s3140jpにDebian wheezyのインストールとjessieへのアップグレード

Pavilion Slimline s3140jpにDebian wheezyのインストールとjessieへのアップグレード

2016/03/10
HDD換装・RAM増設後のHP Pavilion Slimline s3140jpに入れたDebian jessieとデスクトップ環境GNOME Classic/GNOME3
Distro:Debian jessie(8.3)
wheezy(7.9)install後、upgrade
Desktop:GNOME Classic(GNOME3)
Photo by Xfce4 Screenshooter
PC:HP Pavilion Slimline s3140jp
Monitor:HP w1907 19inch
CPU:Intel Core 2 E4300 1.80GHz
RAM:1GB => 2GB
HDD:160GB => 2TB

 Pavilion Slimline s3140jpのHDD破損、2TBのHDDに換装後、Fedora、NetBSDと順次インストールしたものの、残りを単にデータ用にするには、有り余っており、だからと言って、そもそもマルチブートにメリットを感じていたわけではなかったのですが、それでもディストロとして、かねてから気になっていたFreeBSD、OpenBSD、Debianのいずれか、場合によっては、すべてをマルチブートしてみるのも経験としては、いいかなと思っていました。

 メインは、他PC2台含め、事情により、当該マシンにあとから入れることにしたNetBSDでサブだったFedoraがデスクトップLumina 0.8.8-develをインストールした直後に不安定になり、今のところ、復旧方法がわからず(後日解決、改めてLumina 0.8.7インストール済み)、なんなら入れ替えてもよいかと思いつつ、それはそれとして、論理パーティションにインストールしたかったこと、不調になったのがLinuxであり、アプリケーションやデータの利用という点などから、今回は、Fedoraを入れる際にとりあえずどっちにするか結構迷ったDebianを入れてみることにしました。

 各種OSやツールのインストーラ・アップデータ、Liveなどを入れてあったUSBメモリ内、Debian系LinuxをUSBメモリ/GRUB2/GPTでマルチブートのように設定したDebianはwheezyも、既にjessieがリリースされていたのでjessie用インストーラを仕込んでもよかったのですが、Debianのアップグレードもやってみることができるので敢えてwheezyのインストールから行うことに。

Debian wheezyをインストール

 インストーラでパーティションを作成してもよかったのですが、予めGPartedで作っておこうと同じUSBメモリに入れてあるDebian LiveベースのGPartedを起動、なんの気無しにext4でフォーマット、Debian wheezyをインストール後、予め設定しておいたGRUB2の記述でも、その場で編集してもダメ。。。あ、起動フラグ。。。Fedoraを起動、Debianのパーティションをマウントしようとしたら読み込みしかできない旨のメッセージ。。。あ!ext4。。。ext3としてマウントすることもできない。。。つまり、fdisk操作もGRUBインストールもできない。。。

 仕方ないのでGParted Liveを起動し、(これもインストーラでやってもよかったのですが、)ext3でフォーマット、Debianを再インストール。

 Debianインストールの最終段階でDebianのパーティションにGRUBをインストール。

$ cat /boot/grub/grub.cfg
...
menuentry 'Debian' {
    set root=(hd0,7)
    chainloader +1
}
...

 当該マシンでは、FAT32フォーマットしたブートパーティションを用意、そこにGRUBをインストール、そのGRUBメニューから各パーティションに遷移するようにしています。

 そのMBRから呼ばれるブートパーティション上のGRUBにおいてchainload +1でDebianのパーティションにインストールしたGRUBがGRUB 2だったので自動生成されたGRUBメニューが起動、Debianを選択、wheezyの標準デスクトップがGNOME3(or GNOME Classic)であることもあり、ディスプレイマネージャgdm3が起動、ログインも問題なくできました。

 この時、DebianのパーティションにインストールしたGRUB 2は、Fedoraの起動メニューも自動生成してくれていたのですが、自動生成してくれるにしてもLinuxだから?どっちも論理パーティションだったから?(基本パーティションにLinuxがあったらそのメニューも生成された?)のか、よくわかりません。

$ cat /boot/grub/grub.cfg
...
menuentry 'Debian' {
    insmod xfs
    search --set=root --label Debian --hint hd0,6
    configfile /boot/grub/grub.cfg
}
...

 ほどなく、HDD内の整理をするにあたり、Live USBに入れてあるGPartedでDebianのパーティションを(hd0,6)の位置に移動、Live GPartedのターミナルを使って先のGRUB設定で7を6に変更、chainloader +1したのですが、それだけでは、なぜか起動できず、結果、このように書き換えることにしました。

 もしかすると改めてDebianのパーティションにGRUB 2をインストールすれば、先のチェーンロードでもいけるかも?(パーティションの移動でUUIDが変わったのかも?)

$ cat /etc/fstab
...
$ sudo blkid /dev/sda5    <= Debian
...
$ sudo blkid /dev/sda6    <= swap
...
$ ls /dev/disk/by-uuid
...

 なんて思っていたら、再起動した際に進捗を示す赤色のアスタリスクの並びと[A Start job is running for dev-disk-by\x2duuid-UUID]といったメッセージが表示され、2分弱カウントダウンされ、どうも解決できないまま、起動している模様。

 dev-disk-by。。。あ、/dev/disk/by-uuidだ。。。もしかして起動時にマウントしようとしているUUIDと違うんじゃ。。。というわけで/etc/fstabと/dev/disk/by-uuid、root権限で実行したblkidコマンドでルートパーティションとスワップパーティションを確認。。。違っていたら修正する必要があるが。。。

 やっぱり・・・よく見ると/etc/fstabのスワップパーティションのUUIDが違う。。。これだ。。。ということで修正し、再起動したら、案の定、何事もなくスムースに起動するようになりました。

 先のパーティションの整理でlinux-swapの位置も変更したので、先のブートメニューといい、きっと、これによる影響でしょう。

 ざっとアプリケーションを確認してみるとそれほど多くないながらもGIMP、Inkscape、LibreOffice、Iceweasel。。。などもあり、要所は抑えている感のある、なかなかのチョイスと言える?

$ cat /etc/debian_version
7.9
$

 インストールしたDebian wheezyのバージョンは、7.9の模様。

Debian wheezyをDebian jessieにアップグレード

 wheezyのインストールが終わったばかりですが、予定通り、早速、jessieにアップグレード。

 と言っても結構たくさん仮想マシンに各種ディストロをインストールした中にDebian系も結構あったものの、それはインストールまでの話、アップグレードはもとより、dpkgやapt-getの利用自体、初めてなので約1時間30分前後の2度めのインストール中に下記のDebian 8管理者ガイドブック第4章 Debian 7 (wheezy) からのアップグレードなどを流し読みしてみると結構なボリュームであり、アップグレードも他に比べると手順が多く見えるものの、明快なドキュメントがあるので、それに沿ってやるだけで済みそうです。

$ su -
# dpkg --audit
# aptitude search "~ahold"
(or # dpkg --get-selections | grep 'hold$')
(or # dpkg -l | grep 'hold$')
# vi /etc/apt/source.list
...
:%s/wheezy/jessie/g
:wq
# apt-get update
# mount -o remount,rw /マウントポイント
# script -t 2>~/upgrade-jessie手順番号.time -a ~/upgrade-jessie手順番号.script
#

 インストール直後のアップグレードなので不要でしょうが、一応、部分的にインストールされた(不完全な?)パッケージに関してシステムを監査する[dpkg --audit]、インストール済みパッケージの内、hold(保持)状態となっているパッケージを確認する[aptitude search "~ahold"]、または、[dpkg --get-selections | grep 'hold$']、または、[dpkg -l | grep 'hold$']などによって確認、何も出力されなかったので、これらについては、アップグレード前にやっておくべきことは特にない模様。

 パッケージ取得元リポジトリのリスト[/etc/apt/source.list]はインストール時のwheezyになっているので、これをアップグレードするjessie(stableなどもあり)に変更(するだけでOK)。

 /etc/apt/source.listの内容を変更したのでリポジトリキャッシュを更新すべく[apt-get update]、必要なすべてのパーティションを読み書きできるようにマウント[mount -o remount,rw /マウントポイント](パーティション分割していなければ単に'/'のみ)、必須ではないとはいえ、有用な/usr/bin/scriptプログラムを使ったアップグレードセッションを記録する[script -t 2>~/upgrade-jessie手順番号.time -a ~/upgrade-jessie手順番号.script]を実行しておきました。

# apt-get upgrade
# cat /etc/debian_version
8.3
# apt-get dist-upgrade
# exit
exit
Script done, file is /root/upgrade-jessie手順番号.script
# exit
$

 アップグレード用にディスクの空き容量が不足しそうな場合には、更にやれることがあるようですが、ここでは十分あるので飛ばします。

 最小アップグレードと残りのアップグレードは分けるのが賢明なようなので[apt-get upgrade]が無事完了、とりあえずバージョンがjessie(8.x)になっていることも確認の上、[apt-get dist-upgrade]を実行、無事アップグレードが完了した模様、exitでscriptコマンドを終了、更にexitでrootを抜けました。

 なお、[apt-get upgrade]の途中でlibc含むlib...系の再起動が必要な場合、自動で行うか否かを問われたので[yes]として続行しました。

 dist-upgradeにおけるデータの取得に約45分、upgradeも含めてトータル約2時間くらい?

初期設定

$ dpkg -l "linux-image*" | grep ^ii | grep -i meta
...
$ apt-cache search linux-image- | grep -i meta | grep -v transition
$ dpkg -l | awk '/^rc/ {print $2}'
$ su -
# visudo
# update-alternatives --config editor
...
# visudo
...
# exit
$

 必要カーネルの確認、削除されたパッケージの構成ファイルのみ残ったものがないか確認、visudoで特定ユーザーのsudo設定。。。と思ったら、標準エディタがnanoになっているようなのでupdate-alternatives --config editorで確認、現状利用できるものの中から/usr/bin/vim.tinyに変更。

パッケージのインストール

 マシンを再起動、MBRから呼ばれるGRUBメニューからDebianのパーティションにインストールしたGRUBメニューを、そこからDebianを選択すると、jessieではGNOME 3が標準のデスクトップとのことなのでgdm3が起動、セッションを見るとGNOMEとGNOME Classicとあります。

 FedoraやNetBSD含め、ファイルマネージャ、テキストエディタ、ターミナル、メーラーなど、よく使うパッケージの中には、とあるデスクトップ環境が標準とするものもあって横断的に使っており、各デスクトップ環境の確認もしたかったので、Debianのマニュアルに複数のデスクトップを入れた場合にとある不具合が起こる可能性についての言及があったものの、全て入れてみることに。

 他にもConky、VirtualBox、qemu、QtEmu、AQEMU、FileZilla、VNC、Linux用など古いFlashプラグインでは利用できないサービス対策としてこれの最新版を内蔵したChrome、もしくは、Chromium+pepper plugin(ppapi)、正規表現を使った複数ファイルの一括置換機能を備える多機能エディタBluefishなどを入れることに。

 また、追記したように別途、Windows用32ビット版は3.1.4、Linux用32ビット版も6.0.xを最後にリリースされなくなって久しい為、今となっては古いですが、Jessieでは、Linuxカーネルが最新でない安定版であるがゆえに、パッチ不要でまだ使えるVMware Player 6.0.x 32ビット版も入れることに。

$ dpkg -l | grep keyword
...
$ apt-cache search any_package_name
$

 そこでインストール済みパッケージ一覧[dpkg -l]、リポジトリ(キャッシュ)にあるパッケージ検索[apt-cache search any_package_name]を使って必要なパッケージ名をざっと確認するとVirtualBoxがないことに気づき、検索してみるとjessieからVirtualBoxはmainリポジトリからcontribリポジトリに移動したらしく、必要なら[/etc/apt/source.list]を編集する必要があるとのこと。

 なお、Iceweasel(いわゆるFirefox)用のflashplugin-nonfreeやchromium用のpepperflashplugin-nonfreeなどもcontribにある模様、また、これとは別にデスクトップ環境は、Debian(apt-get)の場合、前置詞としてtask-を付けてtask-*-desktopとすれば、それぞれ一通りインストールしてくれるようであることがわかりました。

$ sudo vi /etc/apt/source.list
...
deb http://httpredir.debian.org/debian/ jessie main contrib
:wq
$ sudo apt-get update
$ sudo apt-get install filezilla bluefish conky qtemu aqemu qemu virtualbox chromium chromium-l10n pepperflashplugin-nonfree flashplugin-nonfree tightvncserver xtightvncviewer task-lxde-desktop task-xfce-desktop task-mate-desktop task-cinnamon-desktop task-kde-desktop kde-l10n-ja

 VirtualBox用に[/etc/apt/source.list]を編集、apt-get update、そして一連のパッケージをインストール。

 尚、chromiumとKDEについては、日本語を使おう(国際化・言語対応しよう)と思うと別途、言語パックが必要となるので一緒に入れておきます。

 あ、VLC忘れた。。。と思ったら、KDEやCinnamonあたりでこれを標準採用している?のか、インストールされていました。

参考リンク

デスクトップ環境

 Debian jessieで安定版となっているデスクトップ環境は、KDE、GNOME、Cinnamon、MATE、Xfce、LXDE、これら全てインストールしてみたわけですが、KDEインストール時にディスプレイマネージャの選択を求められ、gdm3のままでもよかったのですが、kdmに変更、セッションには、LXDEのベースのウィンドウマネージャであるOpenbox含め、これらの他にもメニューがありますが、一通り、起動を確認すると極めて正常。

 ただ、別に使うことはないのでよいものの、XFwmセッションだけは選択しても起動せず、操作不能となったのでコンソールを切り替えてもよかったのですが、マシンの電源ボタンを押して再起動することに。

周辺機器

 デスクトップ環境(ウィンドウマネージャ単体ではない)では、DebianでもFedora 20 KDE Spinでオーディオ/デジカメ/スキャナ/プリンタの動作確認同様、少なくともUSB接続のプリンタ、スキャナ、デジカメ、外付けHDDなどは、結構古いものでも基本的に自動でマウントされます。

オーディオ・ストリーミング

 例えば、VLCなどのメディアプレーヤーを使えば、USB接続のCD/DVDドライブをつないで、たいていの場合は、それらを指定するだけで再生できます。

 ストリーミング再生については、LinuxでもYoutube、radiko、らじるらじるは普通に、Gyao!については、いろいろありますが、何らかの形で利用はできます。(詳細は、Adobe Flash Player代替策 *BSD/Linux版Firefox編参照。)

Iceweaselでプラグインの有効・無効を切り替える

 Iceweaselは起動すると何もしなくても日本語表示されており、flashplugin-nonfreeを含むプラグインや拡張機能は、通常のFirefox同様、メニューからアドオンを選択して表示される画面から拡張機能やプラグインに移動・設定することができます。

Chromiumでプラグインの有効・無効を切り替える

 Chromiumを起動してみると(chromium-l10nを入れたため、localeを見て)自動的に日本語表示してくれていますが、プラグインの設定は、URL入力欄にchrome://plugins/として表示されたプラグイン一覧においてpepperflashplugin-nonfreeを含め個々に行なうことができます。

 これでChromiumでもChrome同様、(セキュリティ上不安視されているものの)最新のAdobe Flash PlayerをLinux上でも使えるので、とりあえずではありますが、未だにこれを要するサービスも利用することができます。

[追記:2016/09/16]

 その後、Googleから32bit版Linux用Chrome、32bit版PPAPIのサポート終了がアナウンスされましたが、PPAPIに関しては、まだ、Adobe社がlibpepflashplayer.soを配布しており、少なくとも、その間は、仮にpepperflashplugin-nonfreeパッケージをインストールしていなくてもChromiumで利用可能です。

AQEMU・QtEmuの設定

 AQEMUやQtEmuは、qemuがインストール済みである前提で、とりあえず、デフォルトで利用するアーキテクチャ用のコマンド(i386ならqemu-system-i386)、デフォルトの仮想マシンディレクトリ、各仮想マシンのディスクファイルのパスなどの設定を行えば、既存の仮想マシン含め、利用可能です。

VirtualBoxの設定

 VirtualBoxは、インストール後、ターミナルから起動できるし、既存の仮想マシンも追加できてしまったのでvboxusersグループの作成やこのグループへのアカウントの追加は要らないのか?と思ったら、いざ仮想マシンを起動しようとするとVirtualBox用のエクステンションパック(拡張パック)がないと言われ、既存や改めてダウンロードしたものをインストールしようとすると権限がないというダメ出しがあり、rootで起動すると拡張パックのインストールがあっさり完了、rootで起動すれば、ちゃんと入っているものの、一般アカウントで起動すると入っていないことになっている。。。やっぱり、vboxusersグループやこれへの追加が必要である模様。

$ cat /etc/group | grep vboxusers
vboxusers:x:???:
$ sudo adduser user vboxusers
...
$

 /etc/groupには既にvboxusersが生成されていたのでadduserで一般アカウントを追加したら、先にrootで入れた拡張パックが入った状態のVirtualBoxが、すんなり起動しました。

 尚、ディストロによってユーザーやグループ操作やコマンド名、オプションが異なることがあるので確認すると案の定、adduserやaddgroupであることがわかり、また、manによると後者は前者に含まれる模様であること、グループ追加用のオプションはなく、単にadduser any_user any_groupとすればよいとのこと。

VNC/Virtual Network Computing

 DebianでもNetBSD同様VNCには、tightvncserverとxtightvncviewer(NetBSDではtightvncviewer)を入れてみることにしました。

 また、Debianの/etc/ssh/sshd_configの設定は、X11ForwardingなどFedoraではコメントアウトされていたようなオプションがデフォルトで有効となっており、そのままでもすぐにVNCが機能するようになっていました。

 インストール時、SSHサーバを有効にする指定もしておいたので特に何することもなく双方向ともにSSHポートフォワードによるVNC操作もできます。

 一方。。。あれ?NetBSDやFedoraの時と違ってDebianのデスクトップを他からリモート操作しようとすると実際に起動しているデスクトップ環境(操作している画面とは異なる仮想デスクトップ)にしか接続できないけどなんで?なんかそれらしい設定ってあったっけ。。。?

環境変数PATH

 ふと、ネットワークデバイスを確認しようと端末からifconfig、iwconfig、iwなどとしてもダメなのでそれぞれwhichコマンドを実行してみたら反応なし。。。あれ?と思ったら、Debianはデフォルトでは、sbinへのパスを通していないので追加するか、/sbin/ifconfigのようにフルパス指定しないと機能しないこと、jessieにはifconfig、iwはありますが、iwconfigはないことがわかりました。

ファイル共有

$ sudo blkid /dev/sda5
/dev/sda5: LABEL="Fedora" UUID="......" TYPE="ext3" PARTUUID="..."
$ sudo vi /etc/fstab
...
UUID=... /mnt/fedora    ext3    defaults  0  0
...
:wq
$

 今回、不調となったFedoraのホームディレクトリには、FTPしたいファイル群及びFTPクライアント用のデフォルトローカルディレクトリ、メーラー用ローカルディレクトリ、VLCのメディアライブラリ用ディレクトリ、一部の仮想マシンファイル、メモ的一時ファイル群などなど少なからず共有すべきデータもあるのでFedoraを入れなおすことになったら退避、むしろ、データ用パーティションなり、外付けHDDなりに移行を検討しようと思いますが、そうなるまでは、Fedoraのパーティションを共有しておくのが何かと便利。

 つまり、Debian起動時にFedoraのパーティションをマウントしたい(既にNetBSDでもそうしている)ので、いくつかの方法のうち最も単純な/etc/fstabに追記、ただ、デバイス名ではなくUUIDで設定しておくことにしました。

 メールは、ローカルディレクトリを指定すれば、マウント越しで共有できるのかと思ったら、そうでもなさそう、なんとなくGmailなどは抵抗があるので受信管理が2度手間だったり、送信メールなどの話もありますが、とりあえず、Debianでは、メーラーのPOP設定で[サーバにメールを残す]にチェックを入れておくことにしました。

[追記:2016/04/21]

 ローカル用の各種サーバとしてシングルボードコンピュータであるRaspberry Piとこれに必要なものを選定し、一式購入、OSにはRaspbianを入れ、これにメールクライアントも持たせ、LAN内の各マシンからVNC経由でメーラーにアクセスすることで共有というか共用することにしました。

Debian

 Linuxディストロとして最古参組、しばしば開発者や利用者、派生も多いと言われるDebian、ドキュメントの内容や充実ぶりからして納得。

その他

 Debianでは、これだけ入れても9GBちょっと。

 結局、なんだかんだで丸1日かかりましたが、これでNetBSD、時々Debian・Fedora環境が整い、何を使っていてもOS・ディストロの個性によるところは別として日常の作業がスムースにできるようになりました。

追記:2016/03/19

 Debian 8 jessieに今更ながらVMware Player 6.0.3を入れることにしました。

 Fedora 20で入れて22か23の時、バージョンは忘れましたが、とあるカーネルへアップグレードした際に起動しなくなり、それまでも何度か対処していたものの、その時は、対処にあぐね、そろそろ、32ビットLinuxホストで使うのは限界か?と思い、そもそもオープンソースじゃないから、そんな日がやってくる可能性も高いだろうと先読みしてVirtualBoxをメイン、サブにQEMU、それでもダメならVMware。。。という運用をしていたこともあり、意外とあっさり諦めました。

 ただ、今回、Debianを入れ、何気なく、各種デスクトップのリソース消費を確認してみたら、Fedora 20の時並みに少ない。。。あ、最新を追うFedoraとDebianの保守的な安定版では、Linuxカーネルが違うのか。。。と確認すると、やはり、Debian jessieの今のカーネルは、3.16.0でFedora 20の頃のもの(ちなみにFedora 23の現時点では、4.4.4)。。。そんなことが頭の片隅にありつつ、あれ?カーネルが当時のものなら、VMware Playerも動くのでは?ということでPavilionが32ビットマシンなので当時と同じVMware Player( Pro)で最後の32ビットホスト最終版6.0.xを入れるに至った次第です。

 Fedoraで入れた時の6.0.3の.bundleファイルがバックアップ領域に残っていたので、これをコピーしてきてsudo chmod u+x、sudo sh ./VMwware....bundleのようにしてインストール、2つほど同意書に同意、無償版を使いたいのでオプションであるライセンスキーの入力を[Enter]で飛ばし、途中、何度かyes/noに応答しつつ、インストールは無事完了(Fedoraの時はGUIだった気がしなくもありませんが、今回はシェルベースでした)。

 デスクトップメニューから起動してみると一瞬表示され、即落ち。。。ターミナルで実行してみると[Protocol Buffer]のバージョンが異なる旨のエラーが出るも意味不明なので検索してみると、とりあえず、LANG=C vmplayer &とすると英語版にはなりますが、正常に機能するので常にこうしてターミナルから起動することにしました。

 それにしても(1〜2年前?)過去Fedora上で行ったVMwareとLinuxカーネルにおける対処においてカーネルバージョンをみると最初に対処したのが3.17.4、今のDebianのカーネルバージョンが3.16.0なのでDebianにおいては、近々とはいえ、未来訪れるはずの対応策であるかと思うとデジャブというかタイムマシーンに乗った気分。。。

ホーム前へ次へ