概要

Walbrixにはレスキューモードが収録されており、正常に起動しなくなってしまったシステムの診断・回復や、システムをインストールするまえのハードウェア調査に使うことができます。

レスキューモードは基本的な管理コマンドを備えた Linux環境です。これを使用して実際に診断や回復の作業を行うには Linuxやハードウェアの知識が必要ですが、ここでは入門編として基本的な操作の説明をします。

ここで解説するコマンド類は Walbrixの「コンソール」からも利用可能です。また、Walbrixに限らず Linuxで一般的におよそ適用可能ですので、他でも役に立つことがあるかと思います。

レスキューモードの起動

方法その1: インストールディスクから

Walbrixがコンピュータにインストールされていなくても、Walbrix 3.xののインストールディスクを使ってレスキューモードを起動することができます。インストールディスクを使ってPCを起動すると、3秒の秒読みが行われますのでその間に ESCキーなどを押すとメニュー画面へ移行します。メニュー画面から Rescueを選択してレスキューモードを起動してください。

レスキューモードはメモリ上のみで動作するので、起動後はインストールディスクを抜いてしまっても支障ありません。

方法その2: インストール済みのシステムから

既に Walbrixのインストールされているコンピュータをレスキューモードで起動するには、コンピュータの電源を入れて起動処理に入る際の "GRUB..." という表示の時に ESCキーを押してメニューに入り、Rescueを選択して下さい。GRUB...は短い間しか表示されないので、表示される前からESCキーを連打しておくといいかと思います。

レスキューモードの起動が始まると、画面解像度が 1024x768に切り替わり、起動メッセージが流れていきます。

レスキューモードのシステムにログインする

レスキューモードが起動すると、 login: というプロンプトが表示されます。ここで、(形式的ではあるものの)まずはシステムへログインする必要があります。root という名前でログインしてください。UNIXを起源に持つオペレーティングシステムでは、rootという名前のユーザーが全ての権限を持った特別なユーザーとなっています。

ここではログインの際にパスワードを要求されません。rootと入力するだけでログインに成功し、コマンドの入力待ちになります。

rescue ~ # の表示はプロンプトといい、「コマンドを入力して下さい」という意味です。rescueの部分にはコンピュータ名が表示されることになっており、従ってレスキューモードで起動したコンピュータはコンピュータ名が rescue であることがここでわかります。

ハードウェアの素性を知る

CPU

CPUの素性を知るには、lscpuというコマンドを入力してください。

上記の例の場合、このコンピュータには Intel社製の64bitと32bitに対応したデュアルコアの 1600MHz(=1.6GHz) CPUが1個搭載されており、CPUの世代はファミリー6, モデル23, ステッピング10であるということになります。

PCIバス

PCIバスに接続された機器を知るには lspci というコマンドを入力してください。

PCIスロットに差し込まれている以外にもマザーボード上で内部接続されている機器がずらずらと全部表示されるので情報量が多いですが、上記の例の場合 nVidia製のGeForce210チップ搭載ビデオカードが接続されていることや、シリアルATAコントローラ(ハードディスクやSSDを制御するためのチップ)として Intel社製の AHCI互換コントローラのほかに JMicron社製のコントローラが載っていること、ネットワークインターフェイス(LAN接続のためのチップ)として Realtek社製のコントローラが使用されていることが読み取れます。

こういった情報は Linuxなどに限らず、Windowsをインストールする際にも役に立ちます。

USB

USB接続された機器について知るには、lsusbというコマンドを入力してください。

上記の例の場合、Holtek社のキーボードと Buffalo社(MelCo)製の何か、それとなぜか Xbox360のコントローラがUSB接続されていることが読み取れます。(Xbox360のコントローラは試しに接続してみただけです)

ハードウェア総合

もっと詳細にハードウェアについて知るには、lshwというコマンドを使います。但し、出力される内容が多く瞬時に画面からスクロールアウトしてしまうため、lshw | more とすると良いと思います。| more をつけることで、一気にスクロールしてしまわず 1ページずつ停止します。

次のページに進むにはスペースキーを、1行ずつ進めるには Enterキーを、途中で止めるには q キーを押して下さい。

ストレージの状態を知る

ここでいうストレージとは、ハードディスクや SSD、USBメモリや SDカードなどの端的に言うとファイルを保存するための機器のことです。システムに現在認識されているストレージの一覧を表示するには lsscsiというコマンドを入力してください。

上記の例では、日立製の HDS72161という型番のシリアルATAハードディスク、Optirac社製の AD-7240Sという型番の DVD-RWドライブ、TEAC社製の DV-W28ECFという型番のCD又はDVDドライブが接続されていることがわかります。UNIXに起源を持つシステムでは、こういったものは /dev というパスの下に名前がついてまとめられます。 sdaは Scsi Disk Aの、sr0は Scsi Removable 0 の略です。

SCSIをご存じの方はここを疑問に思われるかもしれませんが、最近の Linuxでは IDEやシリアルATA, USB接続のあらゆるストレージデバイスを SCSIとしていっしょくたに扱います。なのでシリアルATAのハードディスクも SCSIハードディスクと同じ扱いになっています。

ハードディスクは普通、パーティションという単位に分割して利用します。Windowsでいうなら、一台のハードディスクが Cドライブと Dドライブのふたつに分かれている時などにそれが「パーティション分割されている」すなわち「ふたつのパーティションを持つハードディスク」といわれます。

実は分割されていない(Cドライブしかない)場合でも、それは「ひとつのパーティションを持つハードディスク」という扱いです。つまり見た目上はパーティション分割されていない場合でも、ハードディスク上にパーティションと呼ばれるものは(少なくともひとつ)存在するのです。

ハードディスクがどんなパーティションを持っているかは parted というコマンドで調べることが出来ます。調べるどころかパーティションを変更することも出来てしまいますが、不用意に行うと中のファイルを全て失う羽目になりますのでここでは調べる方法だけ示しておきます。

先ほど lsscsiコマンドで調べたところ、日立製のハードディスクは /dev/sda という名前でした。従って、そのハードディスクのパーティションを調べるためのコマンドは parted /dev/sda となります。

partedは対話式のプログラムなので、(parted) というプロンプトが表示されて partedに対するコマンドの入力が求められます。パーティション一覧の表示するには print と入力します。

このハードディスクの容量は 165GBで、セクタサイズが 512バイト、パーティションテーブルの種別はmsdos(いわゆるfdisk方式)、ふたつのパーティションがあり最初のパーティションは1000MB(1GB)でフォーマットが ext4 (Linuxでよく使われているフォーマットで、WindowsでいうFATやNTFSといったようなものです)、起動フラグ付きということになります。

セクタサイズは従来 512バイト固定が普通でしたが、ハードディスクの大容量化に伴い最近では論理512バイト・物理4096バイトや 論理・物理ともに4096バイトのもの(ビッグセクタと呼ばれます)が出現してきています。このあたりの変更には OS側の対応も必要で、移行の間は混乱がありそうです。Walbrixは現在の所論理 4096バイトセクタのハードディスクからの起動に対応していません。

partedを終了して元の状態に戻るには quit と入力してください。

ネットワーク接続の状態を知る

自身のIPアドレスを調べる

ネットワークに正しく接続された状態のコンピュータは、それぞれの IPアドレスを持ちます。現在レスキューモードが起動しているそのコンピュータに割り当てられた IPアドレスを知るには、ifconfig というコマンドを入力してください。

eth0 のほうに注目してください。eth0とは 0番目のEthernet(イーサネット)インターフェイスという意味です。inet addrが IPアドレス、 Maskがサブネットマスクで、HWaddrがいわゆる MACアドレスと呼ばれるネットワーク機器固有のIDです。

ちなみに(Walbrix自体もそうですが、)レスキューモードではネットワーク内にDHCPサーバが存在してIPアドレスが自動的に割り振られることが前提となっています。よくわからない方のために補足すると、あなたがインターネット接続のために家電店で購入してきた数千円〜1万円くらいの「ルーター」なるものに普通はDHCPサーバ機能が内蔵されていますので前提を満たしています。気にしないでください。

デフォルトゲートウェイを調べる

デフォルトゲートウェイとは、とても短く説明するとルーターのことです。ルーターのIPアドレスを知るには、netstat -rn と入力してください。市販のルーターの多くはこのアドレスに Webブラウザでアクセスすることで設定などを行えるようになっているため、ルーターの IPアドレスを調べる方法を知っておくとたまに役に立ちます。

Destination 欄が 0.0.0.0になっている行の Gateway欄がルーターのIPアドレスです。よってこの例の場合は 192.168.61.1 ということになります。

DNSサーバを調べる

いろいろ省略して話すと、インターネットを利用するにはDNSサーバが必要です。多くの場合(=市販のルータを特別な設定なしに利用している場合)、DNSサーバの機能はルーターが受け持ってくれています。ともあれ DNSサーバの IPアドレスを調べるには、/etc/resolv.conf というファイルの中身を見ることになります。ファイルの中身を表示するコマンドは cat ですので、/etc/resolv.confファイルの中身を表示するには cat /etc/resolv.conf と入力することになります。

ネットワーク内の Windowsマシンを調べる

世の中皆さん Windowsをお使いです。ネットワークのトラブルシューティングでは Windowsの動作しているコンピュータが正しくネットワークに接続されているかどうか調べなければならないケースがよくあります。Windowsのコンピュータ名からその IPアドレスを調べるには、nmblookup というコマンドを使います。例えば Windowsの動作しているコンピュータの名前が misao であれば、nmblookup misao とします。

IPアドレスがわかれば、pingというコマンドを使ってそのコンピュータが「生きているかどうか」調べることができます(pingは相手がコンピュータでなくルーターなどの場合でも使用できます)。上の例では nmblookupコマンドにより misaoの IPアドレスが 192.168.61.37であることが判明しているので、ping 192.168.61.37 とすることで生存の問い合わせをすることができます。time=0.487ms という表示は、0.487ミリ秒で生存している旨の応答があったという意味です。pingは一度開始すると止めるまで1秒おきにずっと続きますので、気が済んだら Ctrlキーを押しながら Cキーを押して下さい。^Cと表示され停止します。

Windowsの共有フォルダに FTPのような形で接続するには smbclient //misao/共有名 というコマンドが使えます。但しレスキューモードは日本語入力に対応していませんので共有名は実際は英数字表記のものでないといけません。smbclientについて詳しいことはググってください。

Linuxカーネルのバージョンを知る

uname -aと入力することで現在走っている Linuxカーネルのバージョンを知ることができます。カーネルとは OSの中枢となるプログラムのことです。

レスキューモードで起動したシステムにsshでログインする

以下、わかる人向けです

sshdは起動しているので、passwdコマンドで rootのパスワードを設定するなり ~root/.ssh/authorized_keysに ssh公開鍵を書き入れるなりすることで sshログインできるようになります。

ネットワーク内のホストからはマルチキャストDNS又は Microsoft方式のブロードキャストでホスト名(rescue)の解決ができるようになっています。

レスキューモードを終了する

レスキューモードを終了するには、下記のうちどれでもお好きな方法でどうぞ。

乱暴だけどレスキューモードだから許される方法

普通のサーバでこんなことをしたらぶっ飛ばされますが、レスキューモードでは問題ありません(但しrwでデバイスをマウントしていないこと)。

より紳士的な方法

syncを3回・・・とか今もまだやってる人いるんでしょうか。

その他

Walbrixのレスキューモードに収録する機能のセットの選定については SystemRescueCDを若干参考にしていますので、そちらの情報が役に立つかもしれません