web-dev-qa-db-ja.com

SDカードを全容量に復元する

すべてのパーティションツールが私のSDカードを30 GBサイズのカードと見なすと、問題に直面しました。しかし、カードを購入したとき、私は明らかにそのカードが64 GBであったことを思い出し、さらに「ScanDisk Ultra 64 GB」というカードに書かれています。最大容量は、ext4ファイルシステムでSDカードを再フォーマットすることを決定した後に変更されました(以前はファイルシステムはexFATでした)。それから、私が何をしようとしても、容量を元に戻す助けにはなりませんでした。私が試したのは、gparted、fdisk、さらにWindowsツールのSDFormatterv4とdiskpartを使用しようとしたことでした。しかし、私のプライマリOSはUbuntuであるため、VirtualBoxでWindowsツールを使用します。 phisycalドライブにWindows OSをプリインストールしていません。私がグーグルで検索したのは、WindowsがSDカードの最初のパーティのみを表示する場合のみです。しかし、少なくともWindowsを使用していないので、私の場合ではないと思います。しかし、とにかく私はこれらの解決策を試してみましたが、助けにはなりませんでした。容量を元のサイズに戻す方法は?

ByteCommanderの要求に応じて追加

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT    
sda      8:0    0 698.7G  0 disk    
├─sda1   8:1    0 171.2G  0 part /    
├─sda2   8:2    0   7.6G  0 part    
├─sda3   8:3    0   163G  0 part    
└─sda4   8:4    0 356.9G  0 part /home    
sdb      8:16   1  27.5G  0 disk     
sr0     11:0    1  1024M  0 rom

# parted -l

   ... /dev/sda skipped ...


Model: Generic USB SD Reader (scsi)
Disk /dev/sdb: 29.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End  Size  Type  File system  Flags

SDカードをSDリーダー経由で接続します。ご覧のとおり、/ dev/sdbにはパーティションがまったくありません

Zhongfuが尋ねたように追加

# dmesg | tail -n 20
[ 9203.022463] usb 2-5: New USB device found, idVendor=090c, idProduct=6200
[ 9203.022475] usb 2-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9203.022482] usb 2-5: Product: Generic USB2.0 card 
[ 9203.022487] usb 2-5: Manufacturer: Silicon Motion, Inc.
[ 9203.022492] usb 2-5: SerialNumber: 12345678901234567890
[ 9203.022997] usb-storage 2-5:1.0: USB Mass Storage device detected
[ 9203.024017] scsi17 : usb-storage 2-5:1.0
[ 9204.024052] scsi 17:0:0:0: Direct-Access     Generic  USB  SD Reader   1.00 PQ: 0 ANSI: 0 CCS
[ 9204.024780] sd 17:0:0:0: Attached scsi generic sg2 type 0
[ 9204.027078] sd 17:0:0:0: [sdb] 57626624 512-byte logical blocks: (29.5 GB/27.4 GiB)
[ 9204.030200] sd 17:0:0:0: [sdb] Write Protect is off
[ 9204.030205] sd 17:0:0:0: [sdb] Mode Sense: 4b 00 00 08
[ 9204.031340] sd 17:0:0:0: [sdb] No Caching mode page found
[ 9204.031344] sd 17:0:0:0: [sdb] Assuming drive cache: write through
[ 9204.034209] sd 17:0:0:0: [sdb] No Caching mode page found
[ 9204.034212] sd 17:0:0:0: [sdb] Assuming drive cache: write through
[ 9204.049098]  sdb:
[ 9204.051865] sd 17:0:0:0: [sdb] No Caching mode page found
[ 9204.051876] sd 17:0:0:0: [sdb] Assuming drive cache: write through
[ 9204.051885] sd 17:0:0:0: [sdb] Attached SCSI removable disk

magic :-( 64 Gbが消えました。これは私のSDカードとそのリーダーの写真です here is a photo of my SD card and its reader

ロッド・スミスが尋ねたように追加

# hdparm -N /dev/sdb
/dev/sdb:
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 max sectors   = 0/1, HPA is enabled

編集

私が覚えようとし、あなたの助けを借りて見つけたもの!

nGRhodesが私の心をリフレッシュしてくれてありがとう

  1. SDカードの容量が64 GBである場合、PCでチェックしなかったカードを初めて購入しました。私のカメラだけが、9時間ビデオを録画できることを示しています。 32 GBのSDカードを挿入すると、カメラは4時間ビデオを録画できることを示します。別のカードよりも大きいカードの1つを意味します。さらに、それに応じて64 GBおよび32 GBのカードにタイトルがあります。したがって、これらの事実に基づいて、1枚のカードが32GBでもう1枚が64GBであると結論付けました。

  2. しかし、64GBカードをPCに挿入すると、30GBしかありません。そして、私はそれを誤ってext4ファイルシステムとのフォーマットに関連付け始めました(サイズをチェックする前にフォーマットしたため)!間違いだと思うのはなぜですか? SDカードをexFatに再構成し、PCでサイズをチェックしたので、まだ約30GBでした。それから私はカメラに向かって動いた。私のカメラは、32GBカードで4時間に対して9時間のビデオを録画できることを示しています!容量が失われないことを意味します。

だから、カメラやPCに誰が嘘をついているのか? HPAが根本的な原因であり、PCにSDカードの空き容量があるようです。

EDIT2

AndroidデバイスでSDカードをフォーマットしようとしました。そして最後に、PCは64GBを表示します

# dmesg | tail -n 20
[15394.096958] usb-storage 2-5:1.0: USB Mass Storage device detected
[15394.097115] scsi22 : usb-storage 2-5:1.0
[15395.097725] scsi 22:0:0:0: Direct-Access     Generic  USB  SD Reader   1.00 PQ: 0 ANSI: 0 CCS
[15395.097962] sd 22:0:0:0: Attached scsi generic sg2 type 0
[15395.099192] sd 22:0:0:0: [sdb] 57626624 512-byte logical blocks: (29.5 GB/27.4 GiB)
[15395.099822] sd 22:0:0:0: [sdb] Write Protect is off
[15395.099824] sd 22:0:0:0: [sdb] Mode Sense: 4b 00 00 08
[15395.100449] sd 22:0:0:0: [sdb] No Caching mode page found
[15395.100452] sd 22:0:0:0: [sdb] Assuming drive cache: write through
[15395.108424] sd 22:0:0:0: [sdb] No Caching mode page found
[15395.108427] sd 22:0:0:0: [sdb] Assuming drive cache: write through
[15395.123181]  sdb: sdb1
[15395.123185] sdb: p1 size 124733440 extends beyond EOD, enabling native capacity
[15395.125048] sd 22:0:0:0: [sdb] No Caching mode page found
[15395.125056] sd 22:0:0:0: [sdb] Assuming drive cache: write through
[15395.125836]  sdb: sdb1
[15395.125847] sdb: p1 size 124733440 extends beyond EOD, truncated
[15395.129559] sd 22:0:0:0: [sdb] No Caching mode page found
[15395.129570] sd 22:0:0:0: [sdb] Assuming drive cache: write through
[15395.129578] sd 22:0:0:0: [sdb] Attached SCSI removable disk

# df -h | grep sdb
/dev/sdb1        60G   20K   60G   1% /media/alek/C8AE-0ADD

それでもHPAは有効になっています

# hdparm -N /dev/sdb

/dev/sdb:
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 max sectors   = 0/1, HPA is enabled

EDIT3の概要

  1. カードを買いました。カメラは、サイズが32GBの古いカードを使用した場合よりも長い(2倍の)ビデオで新しいカードで記録できることを示しています。

  2. Ext4ファイルシステムでPCのSDカードをフォーマットしました。最初に容量を確認したところ、約30 GBでした。

  3. ExFatでSDカードをフォーマットし直しました。パソコンで容量を確認しました。まだ約30GBでした。 SDカードをカメラに挿入しました。カメラは、以前のように32GBカードを使用するよりも長くビデオを録画できることを示しています。

  4. AndroidデバイスでSDカードを再編成しました。 Androidデバイスは、カードの容量が60 GBであることを示しています。次に、カードをPCに挿入しました。 PCは正しい容量-60GBを表示し始めました。

Rinzwindが尋ねたように追加

Androidデバイスでフォーマットした後に追加されました。したがって、約64GBが表示されます。

# sgdisk --print /dev/sdb

***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. 
***************************************************************


Warning! Secondary partition table overlaps the last partition by
67108897 blocks!
You will need to delete this partition or resize it in another utility.
Disk /dev/sdb: 57626624 sectors, 27.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): B5FDFA69-32D4-42B0-B8A3-B14DF7A513B5
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 57626590
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048       124735487   59.5 GiB    0700  Microsoft basic data

EDIT4

  1. ファイルを作成しました-1GBサイズ。

dd if =/dev/zero of = 1gb_file bs = 1024 count = 1048576

  1. SDカードに60回コピーしました

    for i in seq 1 60; do echo -n($ i); cp -v 1gb_file/media/alek/C8AE-0ADD/$ i;やった

    (1)"1gb_file"->"/ media/alek/C8AE-0ADD/1"(2)"1gb_file"->"/ media/alek/C8AE-0ADD/2"(3)"1gb_file"->"/ media/alek/C8AE-0ADD/3"

    ...

    (57)"1gb_file"->"/ media/alek/C8AE-0ADD/57"(58)"1gb_file"->"/ media/alek/C8AE-0ADD/58"(59)"1gb_file"->"/ media/alek/C8AE-0ADD/59"

    (60)"1gb_file"->"/ media/alek/C8AE-0ADD/59"

    cp:「/ media/alek/C8AE-0ADD/60」の書き込みエラー:デバイスにスペースが残っていません

    cp:「/ media/alek/C8AE-0ADD/60」の拡張に失敗しました:デバイスにスペースが残っていません

ディスクがいっぱいだったため、最新のコマンドのみが失敗しました。そのため、SDカードに約60 GBを書き込むことができました。

  1. そして、それらをコピーして戻そうとしました。このテストにも合格しました。だから私はSDカードが偽造品だとは思わない。

Psusiが尋ねたEDIT5。 Androidデバイスでフォーマットした後。

lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 698,7G  0 disk 
├─sda1   8:1    0 171,2G  0 part /
├─sda2   8:2    0   7,6G  0 part 
├─sda3   8:3    0   163G  0 part 
└─sda4   8:4    0 356,9G  0 part /home
sdb      8:16   1  27,5G  0 disk 
└─sdb1   8:17   1  27,5G  0 part /media/alek/C8AE-0ADD
sr0     11:0    1  1024M  0 rom  

Psusiが尋ねたEDIT6

# dd if=/dev/sdb of=/dev/null
57626624+0 records in
57626624+0 records out
29504831488 bytes (30 GB) copied, 1518,73 s, 19,4 MB/s

結論。

SDカードリーダーの問題です。

enter image description here

結論を今すぐ答えとして書き上げると思います。簡単な答えは、USB SDカードリーダーに欠陥があるということです。カードのサイズが実際よりも小さいことが報告されています。カードをAndroidデバイスでフォーマット(フル容量を使用)してからコンピューターにマウントすると、ディスク全体に正しくアクセスできず、ファイルがすぐに破損します。

返却するか、現在のリーダーを取り除き、カードの全容量を適切に認識する新しいリーダーを取得します。

2
psusi

SDカードリーダーはHC標準であるため、最大32 GBのSDカードを読み取ることができます。大容量のSDカードにはXC標準リーダーが必要です。

1
MRX