トップ 一覧 検索 ヘルプ RSS ログイン

LN-RecoverFlashMEMの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!Linux で Flash memory を修復??したのでメモする
  ## 今回はWindows で使用していたUSBメモリが「初期化しますか?」と言われたので
  ## 強引に読み出してみた
  # 
  ## Linux でマウントしたら
  ##   sdb: unknown partition table
  ## と言われたので直接パーティションをマウントする

1: DDでデータをイメージファイルにする
 # dd if=/dev/sdb of=usbmemB.dd
 
 ( これで読み込みエラーが出る場合には修理メーカさんを検討すること)
 
2: 壊れたパーティションをマウント
 # mount -o loop,offset=32256 ./usbmemB.dd /x
 
 ( offset値は次の方法で換算 同じUSBがあったので)
 # fdisk -l -u /dev/sdb
 ディスク /dev/sdb: 1022 MB, 1022361600 バイト
 ヘッド 255, セクタ 63, シリンダ 124, 合計 1996800 セクタ
 Units = セクタ数 of 1 * 512 = 512 バイト
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
 ディスク識別子: 0x0xxxxxxxxxxx
 デバイス ブート      始点        終点     ブロック   Id  システム
 /dev/sdb1   *          63     1992059      995998+   b  W95 FAT32
 始点の63x512byte = 32256
 ( 注意はoffset値はバイト換算なので fdisk コマンドに -u を
 つけてセクタ数を表示する事)
  
 # パーティションが壊れていなければ
  # fdisk -l -u ./usbmemoryimage.dd 
  # ででてくると思う

3: バックアップ2
 2) でmount 可能な場合には 再度 dd でバックアップ
 dd if=/dev/loop0 of=usbrecover.dd 

4: レスキュー
 3 でバックアップできた場合には
 # mount -o loop,codepage=932,iocharset=utf8,ro ./usbrecover.dd /y
 
 # cd /y 
 # cp -rfp ./* /foo/bar/recover

 3 の工程を入れた理由
 日本語のファイル名があって直接コピー(工程4)では上手くゆかなかった為。。

----
!手元のUSBメディアを調べてみた
!!2G
 ディスク /dev/sdb: 2013 MB, 2013265920 バイト
 ヘッド 255, セクタ 63, シリンダ 244, 合計 3932160 セクタ
 Units = セクタ数 of 1 * 512 = 512 バイト
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
 ディスク識別子: 0x0d0c0b0a
 デバイス ブート      始点        終点     ブロック   Id  システム
 /dev/sdb1   *          63     3919859     1959898+   6  FAT16

!! 4G
 ディスク /dev/sdb: 3984 MB, 3984588800 バイト
 ヘッド 11, セクタ 10, シリンダ 70749, 合計 7782400 セクタ
 Units = セクタ数 of 1 * 512 = 512 バイト
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
 ディスク識別子: 0x00000000
 デバイス ブート      始点        終点     ブロック   Id  システム
 /dev/sdb1            3224     7782399     3889588    b  W95 FAT32

!! 8G
 ディスク /dev/sdb: 8059 MB, 8059355136 バイト
 ヘッド 211, セクタ 63, シリンダ 1184, 合計 15740928 セクタ
 Units = セクタ数 of 1 * 512 = 512 バイト
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
 ディスク識別子: 0x4402a7bd
 デバイス ブート      始点        終点     ブロック   Id  システム
 /dev/sdb1            2040    15740927     7869444    7  HPFS/NTFS/exFAT


!!16G
 Disk /dev/sdb: 16.1 GB, 16079781888 bytes
 ヘッド 256, セクタ 9, シリンダ 13631, 合計 31405824 セクタ
 Units = セクタ数 of 1 * 512 = 512 バイト
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
 ディスク識別子: 0x1542add1
 デバイス ブート      始点        終点     ブロック   Id  システム
 /dev/sdb1   *          48    31405823    15702888    c  W95 FAT32 (LBA)