シングルユーザモードでFireWireHDDをマウントしたい

友人のiMacがある日突然起動しなくなり、原因がnode structure不良ということまでわかりました。調べると、シングルユーザーモードなら起動するというので、早速Command+Sで起動しました。しかし、外付けのFireWireHDDにデータを移そうと思うのですが、うまくマウントできません。
mount_hfs /dev/rdisk1 /Volumes
とやると Block device required とでます。pdiskを使うと、HDDはrdisk1として認識されていることは確認できました。正常にマウントする方法がわかる方いらっしゃったらアドバイスを下さい。
またそれ以前に、node structure不良の内蔵ハードディスクからデータを救出するもっと良い方法があれば教えて頂きたいと思います。

投稿日 2003/09/08 04:44

返信: 52

2003/09/09 08:40 Community User への返信

Unixの知識が乏しいので、これであっているのか自信はないのですが
私の環境では外付けHDDがマウントできるので参考までに私がやった作業を羅列します。
・シングルユーザモードで立ち上げる
・/sbin/mount -uw /
・ls /Volumes として、マウント先があるかどうかを確認する
・なければ、mkdir /Volumes/fw_hd としてマウント先を作る
・/sbin/mount -t hfs /dev/disk1s9 /Volumes/fw_hd としてマウントする
これで、Firewire HDDがfw_hdにマウントされ、ファイルのコピーも問題なくできます。
何か解決の足がかりになればよいのですが・・・。
#うちのでは、内蔵HDDは/dev/disk0s[9-]、FireWireHDDは/dev/disk1s[9-]が割り当てられているのですが
 これは環境によって違うものなのでしょうか?
追記:mountでrdiskを指定するとBlock device requiredが出る?
http://www.ornl.gov/cts/archives/mailing-lists/tru64-unix-managers/2003/08/msg00017.html

2003/09/09 09:04 Community User への返信

>原因がnode structure不良ということまでわかりました。
DiskWarrior 3.0かディスクウォーリア2.1.1のbootable CDで修復するか、「全データゼロ」オプションによる初期化で修復します。物理損傷が発生していれば、当然無理です。但し、当該HDDが「S.M.A.R.T Self Test」仕様に準拠してれば、ATA環境でDiskWarrior 3.0は物理的な問題をモニターできます。
>しかし、手順4のfsckができない状態です。(BAD SUPERBLOCK と出ます)
>4 起動後、fsck /dev/disk0s5 (←内蔵HDに対してfsck)
Single-user modeで起動した際に、
fsck_hfs -y /dev/disk0s5
と打ち込んでみて下さい。disk0s5が内蔵HDDのマスタであれば有効のはずです。小生は、これで出来ていますが、スレーブの3つのパーティションはできません(有効なコマンドラインが分からない)。但し、BAD SUPERBLOCK が存在しない状態です。
>この二つの問題はおそらくnode structure不良のためにGUIからは(という言い方でいいのかわかりませんが)HDにアクセスできないということだと思います。
nodeファイルにはハードウェアにリンクしたものもありますので、そのように考えても不自然ではないです。多分、alfred_bond さんはMac OS 9をインストールしていないのだと思いますが、OS 9からブートして、FinderPop 1.9.2などのユーティリティでinodeのファイルを削除できます。私は、以前inodeファイルに問題が出た時に、削除して一時的に解決しましたが、後日システムが不安定になり初期化した経緯があります。それで不可視nodeファイルをマニュアルでの削除は推奨しません。DiskWarrior 3.0はnodeファイルの損傷/不整合を修復(全てかどうかは分からない)します。
代替案として、 preen mode(fsck -p)を採用するかどうかです。リスクがあるようで少々ギャンブル的です。私は、HDD の論理構造、Mac OS X のFile Systemが健全である状態でテストしたことがあります。その後システムは不安定になりました。ネット上で"fsck -p"で検索すると、トラブル事例も報告されています。どうゆう時にこのオプションを採用するかについては、Terminalでman pageを事前にご一読して下さい。以下はその解説の一部。
The kernel takes care that only a restricted class of innocuous filesystem inconsistencies can happen unless hardware or software failures intervene. These are limited to the following:
* Unreferenced inodes
* Link counts in inodes too large
* Missing blocks in the free map
* Blocks in the free map also in files
* Counts in the super-block wrong
These are the only inconsistencies that fsck with the -p option will correct; if it encounters other inconsistencies, it exits with an abnormal return status and an automatic reboot will then fail. For each corrected inconsistency one or more lines will be printed identifying the filesystem on which the correction will take place, and the nature of the correction. After successfully correcting a filesystem, fsck will print the number of files on that filesystem, the number of used and free blocks, and the percentage of fragmentation.
"a restricted class"は、セキュリティ領域(不可視)とも解釈できます。

2003/09/09 10:33 Community User への返信

> 4 起動後、fsck /dev/disk0s5 (←内蔵HDに対してfsck)
fsck_hfs とすればうまくゆくかも。
> 6 mount /dev/disk0s5 /Volumes で内蔵HDをマウントする
mount -r /dev/disk0s5 /Volumes とすれば、内蔵ディスクを read only でマウントするはずです。4 の fsck_hfs がうまくゆけば、普通にマウントできる可能性もありますが。

2003/09/10 04:50 Community User への返信

ありがとうございます。
HALさんの作業と同じ事を試してみましたが、最後の行を打った後コマンドを受け付けなくなってしまいます。
やはり内蔵HD起動でなく、FirewireHD起動にしてから内蔵HDをマウントする方法でないと希望はないようです。。。
>#うちのでは、内蔵HDDは/dev/disk0s[9-]、FireWireHDDは/dev/disk1s[9-]が割り当てられているのですがこれは環境によって違うものなのでしょうか?
うちのも内蔵はdisk0、firewireはdisk1が割り当てられています。それと、追記のリンクたどってみました。rdiskのrは、row deviceのrなんでしょうか。rをつけなければBlock device requiredは出ませんでした。ありがとうございます。

2003/09/10 05:06 Community User への返信

ありがとうございます。
fsck_hfsですが、途中まではうまくいきました。
** invalid node structure
(4,5)
と表示された後、
** Rebuilding catalog B-tree
と表示され、しばらくたって
disk0s5 : 0x5 (UNDEFINED)
が続いて3回表示され終了しました。
fsckがちゃんと実行されたのかどうか、よくわからないです。
mount -r /dev/disk0s5 /Volumes
は、Incorrect super blockと表示されマウントできないです。
これは、-r オプションがなくても同じでした。
ほんとに問題ばっかりですいません。

2003/09/10 05:16 Community User への返信

詳しい解説をありがとうございます。
DiskWarriorを買うことも検討しました。ただ、それでも修復できない場合もあるわけですよね。
fsck_hfs -y /dev/disk0s5 は、上にも書きましたが、
** invalid node structure
(4,5)
と表示された後、
** Rebuilding catalog B-tree
と表示され、しばらくたって
disk0s5 : 0x5 (UNDEFINED)
が続いて3回表示され終了しました。
preen modeを試してみる必要があるかもしれません。。。

2003/09/10 05:25 Community User への返信

> mount -r /dev/disk0s5 /Volumes
> は、Incorrect super blockと表示されマウントできないです。
このエラーはmount command が期待しているファイルシステム or なにかが違うためのものです。
mount -t hfs -r /dev/disk0s5 /Volumes
とするとどうですか?それとも、/Volumes/xxx としないといけないのかな? ターミナルで man mount として、option の説明を良く読んでみて下さい。
fsck_hfs は appears to be ok と出るまで何度もかける必要があります。

2003/09/10 05:31 Community User への返信

> >#うちのでは、内蔵HDDは/dev/disk0s[9-]、FireWireHDDは/dev/disk1s[9-]が割り当てられているのですがこれは環境によって違うものなのでしょうか?
> うちのも内蔵はdisk0、firewireはdisk1が割り当てられています。
私は、ここ、パーティション番号がどうか(9以降ではないか)? と読んだのですが...。

2003/09/10 06:23 Community User への返信

>私は、ここ、パーティション番号がどうか(9以降ではないか)? と読んだのですが...。
きくちさんが解釈された通りです。(紛らわしい文章ですいません)
私のところでは、pdiskをやると以下の通りになります
/dev/rdisk0 map block size=512
#: type name length base ( size )
1: Apple_partition_map Apple 63 @ 1
2: Apple_Driver43*Macintosh 56 @ 64
3: Apple_Driver43*Macintosh 56 @ 120
4: Apple_Driver_ATA*Macintosh 56 @ 176
5: Apple_Driver_ATA*Macintosh 56 @ 232
6: Apple_FWDriver Macintosh 512 @ 288
7: Apple_Driver_IOKit Macintosh 512 @ 800
8: Apple_Patches Patch Partition 512 @ 1312
9: Apple_HFS OS X 20971520 @ 1824 ( 10.0G)
10: Apple_HFS Data1 20971520 @ 20973344 ( 10.0G)
11: Apple_HFS Data2 25165824 @ 41944864 ( 12.0G)
12: Apple_HFS Installer 11029464 @ 67110688 ( 5.3G)
13: Apple_Free 0+@ 78140152
1から8まではドライバーやらなんやらが入っていて、パーティションは9から番号が割り当てられています。
これが、環境によって違うのか?というのが私の疑問です。(ちなみに私はOS XのDisk Utilityで初期化しています)
本当にdisk0s5がパーティションの割り当てられているところなのか確認してみた方がいいように思うのですが。

2003/09/10 07:32 Community User への返信

> mount -r /dev/disk0s5 /Volumes
> は、Incorrect super blockと表示されマウントできないです。
このエラーはmount command が期待しているファイルシステム or なにかが違うためのものです。HAL さんが指摘しておられるように disk0s5 の5はちょっとおかしい気がします。
mount -t hfs -r /dev/disk0s5 /Volumes
とするとどうですか?それとも、/Volumes/xxx としないといけないのかな? ターミナルで man mount として、option の説明を良く読んでみて下さい。
fsck_hfs は appears to be ok と出るまで何度もかける必要があります。
OK Cancel

2003/09/10 09:00 Community User への返信

>DiskWarriorを買うことも検討しました。ただ、それでも修復できない場合もあるわけですよね。
はい、Invalid sibling error、Error -127などが極度に悪化したときなどにあります。但し非常に少ないです(特にv3.0では)。
> disk0s5 : 0x5 (UNDEFINED)
については、/Library/Receipts/Mac OS X Log.txtが健在であれば、中身を見て矛盾があるかどうか何か発見できるかもしれません。
例えば、当方の Mac OS X 10.2.6の最新インストールログには、Partition map: disk0x6、Partion numbersとType、Disk のProtocol、Original Disk Layout、Apple Driver番号、RemountされたVolumeがどこにremountされたか等々の詳しい情報が記録されています。ちなみに、disk0x6は古い状態(最後にPartitionを作成したときのもの)の記録で、現在はdisk1x6から8まで、disk2x6から8までの6パーティションです。従って、 OldWorld StartupFile は最後にパーティション化した時のdisk0x6にインストールされています。
> ** invalid node structure
4,5)
これ(実際は別の損傷/不整合があって、fsckやDisk Utilityが報告していないかもしれない)がボトルネックです。このHDD の論理損傷の状態では、HDD をゼロ化で初期化(Partitionの再構築もお勧め)をしなければ、問題を解決できないと思います。"fsck -p"を試すと、さらに悪化するかもしれません。
問題が解決してからもMac OS X を引き続き使用されると思いますが、HDD の初期化に依存せず問題解決を計りたい場合などに、DiskWarriorは必須ツールとして推奨できます。

2003/09/10 21:22 Community User への返信

ありがとうございます。
ちゃんと読んでいなくてすみません。
pdiskで同じように確認しましたが、スライス5が起動システムの入っているパーティションであることに間違いはないと思います。そのようなドライバ関連は4まで入っていますが、5がメインで、6がApple_Free です・・・

2003/09/10 21:31 Community User への返信

ありがとうございます。
たった今、マウントに成功しました!!!!
mount -t hfs -r /dev/disk0s5 /Volumes/mn/
として、/Volumes/mn/ 以下に、なんのひっかかりもなくすんなりと
マウントできました!
これからデータを移し、自分のPBでちゃんと表示されるか確認した後、iMacの内蔵HDを初期化する作業に取りかかろうと思います。
まだ全ての作業がうまくいくかわかりませんが、大きな一歩です。ほんとうにありがとうございます。

2003/09/10 21:47 Community User への返信

>スライス5が起動システムの入っているパーティションであることに間違いはないと思います。
そうですか。そこがあっているとなると、私にはお手上げです。お役に立てなくてごめんなさい。
CD起動もうまくいかないとのことですから、DiskWarrior等のサードパーティ製ユーティリティも望み薄ですし
データ救出はいよいよ難しいかも・・・

2003/09/10 22:29 Community User への返信

とんでもないです。これだけアドバイスを頂いて、感謝の限りです。
下にも書きましたが、現在マウントに成功しデータ救出中です。
完了次第、報告します。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

シングルユーザモードでFireWireHDDをマウントしたい

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。