]
トップ 最新 追記

Yukiharu YABUKI の tDiary



このtDiaryを検索します。

2014-03-01 [長年日記]

_ [Gauche] Lisp/scheme 属の Gauche

apt-get install gauche-docで info は必ず入れよう。Gauche 自体のチュートリアルで、online ですぐに読めるのは見つけられなかった。schemeのチュートリアルで遊ぶのが良い

Gauche は、インタラクティブ・モードを持っている。が、編集機能は、今のところ予期したほど強力ではない。そのため、Emacsと協調して動かすのが良い。分業ですね。

設定方法は、info の gauche (ja) に書いてある。が、せっかちな人のために、引用する。

`gosh'をEmacs内部で走らせることをお勧めします。
EmacsはSchemeサブプロセスを操作するための豊富な機能を持っています。
次の行を`.emacs'に加えておくと、<M-x run-scheme> で
Emacsのバッファ内で`gosh'が走ります。
     (setq scheme-program-name "gosh -i")
また、エンコーディングのことも書いてある。


2014-03-04 [長年日記]

_ [Debian] lvm is not available

自分のsidマシンが、"lvm is not available" というメッセージを出すようになり、起動しなくなった。

これから書くことは、上記のメッセージを出てから直すまでの話です。最初に、最小手順だけ書くと

  1. Debian rescue live image を使って、レスキュー・ディスクを作る
  2. 対象PCを rescue live image を使って立ち上げる。
  3. lvdisplayで状況を確認
  4. lvm がアクティブなら、cryptsetup luksOpen 確認したlvmデバイス名 適当な名前 で、パスワードを入力して、暗号化を解く。
  5. 解いた暗号化ファイルシステムを、順番にmountしていく
  6. ネットワーク接続を確認
  7. chroot 自分が、ファイルシステムツリーを作った場所(/とした場所)
  8. システムの検査, 今回は apt-get install lvm2, と update-initramfs -u
  9. 再ブートして、確認。もちろん、usb memory stick などの起動メディアは抜いておく。Debian live rescue image は、ちゃんと警告してくれるので、メッセージを見逃さないなら大丈夫

原因

私の予想では、(1)何らかの理由(私の操作の依存関係か?)で lvm2 のパッケージが抜けて、linux-imageの更新かかかり、update-initramfs を作るときに、lvm を含めていなかった。kernel更新をしても、再起動させるタイミングで、即時チェックをしなかったので、発見が遅れた。noteパソコンを、運用していて、メモリーサスペンド最中に放電サイクルで、誤って全部放電させて、再起動をかけて、問題が発覚した。

レスキュー・ディスクの作成

live-imageでレスキュー・ディスクを作るには、(https://www.debian.org/CD/faq/#write-usb)を参考に、ddで、usb memory stick に作った。GUIが使える環境も魅力的ではあるが、今回は、復旧が目的なので、レスキューイメージを書き込んだ。usb 3.0 のポートと memory stick を使ったが、想定したよりは時間がかかった。これは、BSを4Mにしろと、助言がされるわけだ。

起動は、ThinkPad の青いボタンを押下して、BIOSメニューに入り、usb memory stick からbootするように設定する。

調査

ありがたいことに、家には複数台のPCがあり、片方で Google 検索を行い、片方の復旧を行った。(余談開始)こういうことで、成功体験があるから、何台もPCを所有してしまうのかもしれない。(余談終了) まずは、Debianの BTS とか漁ったが、もう closed しているものばかりで、その日の段階で、同じような目に会っている人はいなかった。

rescueで上げて、lvdisplay で確認すると、lvm は active になっているので、lvm の設定で躓いているのだろうと、推測。

とすると、lvm + 暗号化しているノートを手動で、暗号化を解いて、マウントする方法を確認する。(http://digitalvectorz.wordpress.com/tag/unknown-filesystem-type-crypto_luks/)を参考にしながら、/mnt を / と見立てて /boot や / をマウントしていく(ここは、ご自分のパーティションというか、lvmの構成というか、に依存します。)

復旧

準備のマウントが終わったら、localeの設定、ネットワーク接続を確認してから、chroot で /mnt を / として、システムの修復を行う。/sys や /proc はマウントされてないし、locale の設定内容によっては、Cへfaillback するかもしれない

apt-get install lvm2で、lvmのパッケージを導入しておく。あとは、update-initramfs -u で、/boot/initrd.img を更新(lvmを含める) する。その後、exitでchrootを抜けて、reboot コマンドを実行、画面にusbメモリーなどを抜けといわれたら、抜いてから、エンターキーを押す

すると、無事に起動して、パスフレーズを聞いてくれるようになり、立ち上がるようになりました。ほっ。と一安心