VirtualBoxのアップデートとFreeBSD11.1のダウンロード

 前回FreeBSDを試した時は、10.3だったが、既に11がリリースされているので、インストールしておく事にする。

 ついでにVirualBoxもアップデート。VirtualBoxをアップデートする事に意味があるかどうかは判らない。

 

 ハードよりソフトを優先する。ハードはソフトの工夫で解決できなくなってから。

 

 VirtualBoxの現在の最新版は5.2.8。

 アップデート作業は、OracleダウンロードサイトvirtualBox 5.2.8 platform packagesからWindows hostsをクリックしてインストーラーをダウンロードして実行。

 設定はデフォルト。インストーラーの指示通り進める。

 途中、ネットワークをリセットし一時的にネットワークを切断する旨のアラートが出る。

 旧環境に拡張機能パックがインストールされていた場合は、Virtualboxを立ち上げた時、拡張機能パックをダウンロードするかどうか聞いてくるので、yesを返す。その後、拡張機能パックをインストールするか聞いてくる。

 とりあえず、インストーラーにいいなりで、アップグレードは完了する。

 

 見た目は前のバージョンのVirtualBoxと変わったように見えない。唯一、初期解説のページのようなものが追加されて、トンカチを持った小太りのペンギンが表示される。

 旧環境はそのまま引き継がれる。

 旧環境にインストールされていたFreeBSDの動作を確認。

 ヘッドレス起動でRLoginからのアクセスを試す。

 動作が少し速くなっているように感じるが、たぶん気のせい。

 

 Googleサイトに書き込んでいた前々回、前回の作業ログを確認。

 前々回の作業は2012年1月、前回の作業は2016年9月の作業。

 2012年にNETの記事を参考にVirutualBoxとFreeBSDをインストール。この時は仮想環境用のパッケージされたX環境付きのパッケージをインストールしている。2012年の時点でWindowsVista以降のWindowsへの興味を完全に失っており、Windows7はApplication Playerとして割り切って捉えている。

 2016年段階では、2012年当時の事は覚えていない。VirtualBoxの存在もほぼ失念していたはず。2012年にインストールしたFreeBSDは動作していないが、何をどういじって動かなくなったかも覚えていない。2012年時点のようなパッケージは存在していなかったので、まずはKnopixをインストールしようとしている。この時のVirtualBoxは5.16で既にペンギンはいたようだ。但し小太りではなくトンカチも持っていない。VitrtualBoxのアップデートは頻繁で、数度のアップデートを行った覚えがある。

 以下、当時の作業ログ

 FreeBSDのインストールで少しハマった。
 FreeBSDは10.3を使った。Xにはこだわっても仕方がない。余計にややっこしくなるだけだ。
 CD版のISOイメージでも、ダウンロードするのに3時間以上かかった。
 
 その間に、KnopixのISOイメージが手元にあったので、試してみた。新規でVirtualMachineを作成し、クリックしインストールメディアとしてISOイメージを選択するだけで、Knopixが立ち上がり、Ctrl+SPCで日本語入力も可能。Emacsも動いた。ただ、一旦シャットダウンすると、すべてが消えてしまう。シャッタダウンの代わりに状態保存で終了すれば、次回もそこから再開できるが、これでは怖くて使えない。
 
 そうこうしている間に、FreeBSDのダウンロードが終わり、インストール開始。
 面倒なので、すべてデフォルトで作業を進め、Install Finishedに相成ったが、Rebootすると、また一からインストールが始まってしまう。
 おかしいおかしいと思いながら、4~5回インストールを繰り返した。
 
 結局、仮想マシン上にブータブルなCDが残っていて、CDイメージが優先して立ち上がってしまうというオチだった。
 実機なら、インストールが完了された時点で、CDがイジェクトされるのだろうが、仮想マシンでは、そうは行かない。リブート後インストールが始まる前のタイミングで仮想マシンを終了させて、VirtualBoxの設定からCDのISOイメージを排除する必要がある。
 判ってしまえば、確かに納得できるのだが、気がつかずに、時間を無駄にした。
 
 手順としては、
 インストールが終了したら、リブートして、立ち上がる前のタイミングで、VirtualBoxのコンソールから該当仮想マシンの電源をオフし、設定のストレージからCDを除去する。仮想マシンが実行中は、CDの除去はできない。
 
 その後、試しにEmacsをインストールしようとしたが、make install で結構な時間をかけてコンパイルした挙句、filesystem fullで終了してしまった。
 数年間は、限定された範囲だが、Linuxを業務で使っていた事があったのだが、その頃の知識は殆ど失ってしまっている。弄り壊してはインストールを繰り返せば、少しは思い出せるかもしれない。仮想なので気軽に壊せるのは良い。
 
 仮想環境のディスク容量を2GBから8GBに変更して再インストール。
 ユーザー名はmuh、パスワードはfreebsd 安定運用できたら変更する。
 Emcsをpkg installしようとしたら、toolがまだインストールされていないと怒られた。
 
# pkg install editors/emacs-nox11
 を実行
 
 結果として、Emacsのインストール完了。

 

  とりあえず、FreeBSDのインストールメディアのISOイメージを入手すればよいので、FreeBSD-11.1-RELEASE-amd64-disc1.isoをダウンロードする事にした。VirtualMachine用のイメージも存在するが、これはVirtualBoxを対象にしたものではないだろう。また拡張子xoの圧縮ファイルもあるが、解凍手段がない。 

 ダウンロードに時間がかかりそう。気長にいこう。

E420復活中、環境改善運動宣言

 E420の劣化が目立ち始めたのは去年後半から。

 最初は指紋認証が利かなくなった。最初は認証されたりされなかったり、その内完全に無視されるようになった。ログイン時にキーボードからパスワードを入れるくらいはどうって事はなかったので、特に使用に差し障りはなかった。

 次に電源ケーブルの断線。ケーブルを捻ったりして誤魔化しながら作って使っていたのだが、最後には完全に断線した。幸いアマゾンに新品の電源アダプターが出ていたので購入し事なきを得た。但し、内部に接触不良があるようで、ケーブルが引っ張られたりするタイミングで電力供給が途切れる。

 最後、HDD上の不良セクターの問題。

 Cドライブの chkdsk /F については、ハードウェアの障害ではなく、ソフトウェアの設定の問題だろう。

 

 不良セクターの件はHDDの交換で解決した。

 電源の件は、ケーブルを丁寧に扱うしかないだろう。充電不能になったら、その時点で修理を考える。充電量が50%を切らないように気をつける。

 最後の指紋認証だが、指紋を登録し直したら、簡単に復活した。指紋認証に問題があったのではなく、指紋の方に問題があったのか?

 

 安価なノートPCだったので、購入時からあまり期待していなかったし、それほど大切にしてこなかった不憫なマシンだったのだが、よくよく考えてみてば、これほど長く主力として使ったPCはなかった。

 中継ぎのつもりで買ったのだが、そこそこ性能は良かったし、手荒く使っていたわりに壊れなかった。当時としても重く分厚い筐体だったので、通気性や冷却性が良かったのも幸いしたのだろう。

 ストレージ容量に余裕ができたので、今度はソフトウェアの整理。バックアップもレスキューもリカバリーもあるので、かなり思い切った事を試して失敗しても大丈夫。環境改善運動を展開する事にする。

使わないハードウェアを導入しない

 日常的に使うものなら邪魔にはならない。

 使わなければ邪魔だから、どこに仕舞いこむ。思い出して使おうと思った頃には時代遅れになっていたり、使い方が判らなくなっていて、最終的にはただのゴミが場所塞ぎになる。

 そんな悲劇は繰り返したくない。

 FreeBSDが走るマシンが欲しいのだが、中途半端なものを組み立ててしまうと、またゴミが増える事になる。もう押入れに古コンピュータを仕舞いこむ余裕はない。

 仮想環境上のFreeBSDでもEmacsくらいは使える。仮想OSなら場所塞ぎにならない。仮想OSを使い込んでから、現実のマシンを組んでも遅くない。

 それまで、ハードウェアの構想は妄想で楽しもう。妄想ならSSDRAID-Zを組んで、CPUは低消費電力のXEON、メモリーECC付きで64GB、配下のネットワークにディスクレスの小型マシンをぶら下げて、動的にネットワークブートさせて分散処理を実行なんて好き勝手な事を思考実験ができる。

 仮想/現実を問わず、まずは慣れるまで、日常的に使い込む事が重要。前回は日常を超えて集中し過ぎて、非日常に突入し、日常に戻った瞬間にいろいろ記憶が飛んでしまった。それを見越してログを念入りに書いたつもりだったが、非日常の念入りなログは可読性に難があった。その時の本人はなるべく判り易く書いたつもりなのだが、極めて狭視野・近視眼的になっていたので、その時重要と感じた事が必ずしも重要ではなく、逆に肝心な事が自明の事として省略されていたりする。結果、無駄に冗長で読み解くのが苦痛。読んでいると腹が立ってくるのだが、その怒りの持って行き場所を考えると悲しみがこみ上げてくる。

 しかしまぁ、現実のハードウェアで試す前に、仮想環境で試せるのなら、それに越した事はないという判断は間違っていなかった。仮想環境だったから、この程度で済んでいたので、これがリアルだったら、もっと悲しい思いをしていたに違いない。

 という事で、前回のVirtualBoxでの試みについて、方向性は間違えてはいなかったが、突入速度を間違えたという事に結論づける。

 もう一度ソフトランディングを目指して再突入してみる必要がある。

 復活したE420に愛着が出てきてしまったというのもある。mSATAにFreeBSDを仕込んでデュアルブートさせるという方法もある。USキーボードを購入時に選択したというのも、その狙いがあったからだ。

あのFreeBSDはどうなった?

 FreeBSD日記のつもりが、Windowsマシン修理日記になってしまっている。

 今あるFreeBSD環境がWindowsにインストールした仮想環境上にあるので、Windowsがクラッシュすると一蓮托生でFreeBSDもクラッシュする。とはいえ、FreeBSDのログも2016年の12月25日で終わっている。

 作業を始めたのは、2016年の9月だから、3ヶ月程度は集中していた事になる。

 最近になって、また少しずつ再開しようと思い始めたのだが、IDとパスワードを思い出す事から始め、ログを読み返している状態。

 2016年末でFreeBSDいじりをやめた理由は、ノートPCによる低温火傷が直接の理由だが、背景にはEmacsLispのプログラミングに集中し過ぎてしまった事にある。それほど長いコードではないのだから、ド素人が変数を使わないコードを目指した結果、妙に複雑なプログラムになってしまった。そのコードからはPostgreSQLへの呼び出しを行っていた。更にEmacsLispで満足しておけばよいものを、Scheme系の言語であるGaucheにも興味を持ち、図書感で本を借りてきたりした。

 集中し過ぎて煮詰まってしまって、その反動として興味が拡散しつつあった。EmacsLispで書いたプログラムは完成したはいえないが、それなりに動作するものにはなった。そこで少し距離を置いて客観的に見直そうとしたのだが、そのまま忘れてしまい最近に至ったというのが現状。

 3ヶ月で覚えた成果は、3ヶ月あれば忘れる。1年以上経ってしまうと、そういえばそんな事もやったなくらいの覚えしかない。

 とりあえず動くだけのFreeBSDのサーバーを立ち上げるだけならそんな難しい事ではない。重要なのは日常的に使う事だ。その目的の為にはテキストとメタデータを管理する為の透明性の高いシステムを構築する事が妥当だと考えた。

 その為にEmacsの使用を最重視し、既存の仕組みとして膨大な機能を誇るOrg-modeの利用を考え、Org-modeに不足している部分を補う為にPostgreSQLの利用を考え、そのインタフェースをEmacsLispで何とかする為にLispに嵌り、今風なLispとしてCommonLispより軽い仕様のSchemeに興味を持ち、EmacsLispとSchemeシンタックスの相違に軽い絶望感を覚えながらも、実用まではいかないが、とりあえず動くメジャーモードもどきをでっちあげた。

 今思えば、3ヶ月間程度の作業としては、ちょっとやり過ぎで、未消化のまま進め過ぎたきらいがある。当時のログを読み返しても、我ながら思い込みの激しい内容が多い。

 当時のログを読み返しながら、今後の方針を決め直す。

HDD換装→無事起動

 試行のつもりで、クローン作業が終了したHDDを交換。結果としてはあっけなく起動に成功した。

 Windowsが立ち上がった後、新しいHDDのドライバーインストールの為に再起動したが、ブルースクリーンが出る事はなかった。

 ハードウェアのクイックテストとCrystalDiskInfoを実行したが、いずれも異常なし。

f:id:muh:20180312201610p:plain

 

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Windows\system32>chkdsk c:
ファイル システムの種類は NTFS です。
ボリューム ラベルは Windows7_OS です。

警告: /F パラメーターが指定されていません
CHKDSK を読み取り専用モードで実行します。

CHKDSK はファイルを検査しています (ステージ 1/3)...
1188608 個のファイル レコードが処理されました。
ファイルの検査を完了しました。
3322 個の大きなファイル レコードが処理されました。
0 個の問題のあるファイル レコードが処理されました。
0 個の EA レコードが処理されました。
71 個の再解析レコードが処理されました。
CHKDSK はインデックスを検査しています (ステージ 2/3)...
1398698 個のインデックス エントリが処理されました。
インデックスの検査を完了しました。
0 個のインデックスなしファイルがスキャンされました。
0 個のインデックスなしファイルが回復されました。
CHKDSK はセキュリティ記述子を検査しています (ステージ 3/3)...
1188608 個のファイル SD/SID が処理されました。
セキュリティ記述子の検査を完了しました。
105046 個のデータ ファイルが処理されました。
CHKDSK は Usn ジャーナルを確認しています...
100% 完了 (33914880/33920016 の USN 33920016 バイトが処理されました)
33920016 バイトの USN が 処理されました。
Usn ジャーナルの確認を完了しました。
ファイル システムのチェックが終了しました。問題は見つかりませんでした。

963222524 KB : 全ディスク領域
405822948 KB : 951688 個のファイル
437312 KB : 105047 個のインデックス
0 KB : 不良セクタ
1321328 KB : システムで使用中
65536 KB : ログ ファイルが使用
555640936 KB : 使用可能領域

4096 バイト : アロケーション ユニット サイズ
240805631 個 : 全アロケーション ユニット
138910234 個 : 利用可能アロケーション ユニット

 結局、実質的には大した事はやっていない。まとめると以下の通り。

  • DiskWizardをダウンロード。
  • HDDとHDDケースを用意。初期不良のない事を確認。
  • PCとケースに入れたHDDを接続。
  • DiskWizardでディスクのクローンを実行。
  • HDDを交換。

 ディスクとパーティションのバックアップをとったり、DiskWizardのブータブルリカバリーメディアを作ったり、Windowsリカバリーメディアを作ったりしたが、それらは今回の作業では使っていない。

 

 今回の作業で成功しなかった場合は、まずはDiskWizardのブータブルリカバリメディアからブートし、ディスクとパーティションのバックアップから復元を試し、それが失敗したら、Windowsリカバリーメディアを使って工場出荷時の状態に戻した後、現在のビルドまでアップデートした後、データバックアップからデータを復元するつもりだった。

 まぁリスクヘッジの為の作業だったわけで、まったくの無駄だったわけではない。再度壊れてもディスクとパーティションのバックアップのところまでは復元できるだろうし、壊れつつあったHDDもHDDケースに入れて保存しているので、このHDDからクローンすれば、ついさっきまでの状態で復元できるはず。

 本体電源に不安があるが、あと2年は頑張ってくれると嬉しい。

 

 とりあえず、作業完了。

さてダメ元のディスククローン

 現在稼動している壊れかけたHDDをケースに入れた新品のHDDにクローンしてもいいのではないか?

 失敗しても失うものは時間だけで、それ以外あまりない。寝てる間にどこまで進むかわからないが、まさか丸一日はかからないだろう。

 

 HDDのクローンはHDDのサイズが異なるの手動で行った。

 手動とはいっても、パーテーションのサイズを決めるだけ。

 システム領域のサイズは現状と同じサイズが提示されていた。

 Qドライブを現在と同じサイズに調整した後、Cドライブを可能な最大値に調整。

 余ったサイズはQドライブにまわして未使用領域を残さないようにした。

 パーティションの前にずらしたり後にずらしたりの調整が判りづらかったが、それほど難しい作業でもない。

 クローンを実行すると、PCは再起動する。立ち上がってくるのは、Windowsではなく別のシステム。ブータブルリカバリーメディアは使っていないのだが、どんな仕組みでブートするのか判らない。システム起動領域を書き換えているのか?(途中で強制終了とかさせると戻ってこれなくなるかもしれない。)

 途中、読み取りできない旨のエラーが発生して、処理が中断していた。「すべて無視」を選択して処理を続行させた。クローン処理が終わると、PCはシャットダウンされていた。

 何も問題がなければ2時間くらいで終わりそうなので、バックアップ・復元によるクローンに較べると短い時間で作業は終了する。

 システムは書き込まれている模様。正常にブートできるかどうかはHDDを交換してみないと判らない。

 

E420のリカバリーメディアの作成

 cdrivebackup.wimをデスクトップにコピー。

 Qドライブのパーティションのバックアップも取ってあるのだが、念のため。外付けに保存するまではないだろう。

 USBメモリーの初期不良の有無確認を兼ねて、リカバリーメディアを作成する。

 Lenovo ThinkVintage toolsからFactory Recovery Disk

 DVDメディアではブートメディアは作れないらしい。いずれにせよ、複数枚のリカバリーディスクなんて管理しきれない。盤面にタイトルを書くだけでも面倒臭い。

 購入したのは【Amazon.co.jp限定】 Transcend USBメモリ 16GB USB3.1 & USB 3.0 スライド式 ブラック (無期限保証) TS16GJF790KPE (FFP)。

 レビューにリカバリーメディアを作成した実績があったのと、ある程度の大きさがあって失くしにくそうだったから。蓋ではなくスライド式になっているので、蓋も失くしにくい。

f:id:muh:20180311232011p:plain

 容量16GBにしておいて良かった。

 しかし、結果としてはヤッチマッタナ。再起動させてF12でUSBからの読み込みを指定したら、Invlid partition table という無情なメッセージ。

 DiakWizardが古い安物のメディアを使ったにもかかわらず、やすやすとブータブルメディアに化けたので油断していたのもあった。

f:id:muh:20180311235337p:plain

  Diskpartの操作を行ってみる。

  1. diskpartを起動
  2. >list disk
  3. 対象となるUSBメモリーのディスク番号を確認する
  4. >select disk <ディスク番号>
  5. >clean
  6. >ceate partition primary
  7. >active
  8. >exit

( 後で考えたら、パーティションにマークをつけるだけだから、diskpartでcleanをを行う必要はなかったかもしれない。)

f:id:muh:20180312001320p:plain

 「アクティブ」が追加されている。

 ただ、コンピュータの中にUSBのアイコンは存在しなくなっていたので、コンピュータから右クリック、管理のディスク管理でNTFSにフォーマットした。

 ドライブレターは空白とあったが、Fが残ったままだったので、削除はせずそのままに。その後、再度リカバリーメディアの作成に。

 リカバリーメディアは建前上は一度しか作成できない事になっている。2度目を作成しようとすると、その旨のメッセージが表示され拒否される。ただ作業が行われたどうかは、Qドライバの直下にあるFactoryRecoveryフォルダの中のservice_done.iniの存在の有無で判断される。service_done.iniを削除すれば、再度の作業が可能になる。失敗し易い作業なので妥当な仕様だろう。

 service_done.iniを削除。cdrivebackup.wimはコピーを戻すといった作業はしなくても、そのままで問題なかった。

 作成されたメディアを使って、再起動時にブートさせる事に成功した。

 とりあえず、これでE420のHDDが突然クラッシュしたとしても、有料回収ゴミになる最悪の事態は避けられそうだ。めでたい。