すべてのパーティションツールが私の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を使用していないので、私の場合ではないと思います。しかし、とにかく私はこれらの解決策を試してみましたが、助けにはなりませんでした。容量を元のサイズに戻す方法は?
# 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にはパーティションがまったくありません
# 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カードとそのリーダーの写真です
# 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
私が覚えようとし、あなたの助けを借りて見つけたもの!
SDカードの容量が64 GBである場合、PCでチェックしなかったカードを初めて購入しました。私のカメラだけが、9時間ビデオを録画できることを示しています。 32 GBのSDカードを挿入すると、カメラは4時間ビデオを録画できることを示します。別のカードよりも大きいカードの1つを意味します。さらに、それに応じて64 GBおよび32 GBのカードにタイトルがあります。したがって、これらの事実に基づいて、1枚のカードが32GBでもう1枚が64GBであると結論付けました。
しかし、64GBカードをPCに挿入すると、30GBしかありません。そして、私はそれを誤ってext4ファイルシステムとのフォーマットに関連付け始めました(サイズをチェックする前にフォーマットしたため)!間違いだと思うのはなぜですか? SDカードをexFatに再構成し、PCでサイズをチェックしたので、まだ約30GBでした。それから私はカメラに向かって動いた。私のカメラは、32GBカードで4時間に対して9時間のビデオを録画できることを示しています!容量が失われないことを意味します。
だから、カメラやPCに誰が嘘をついているのか? HPAが根本的な原因であり、PCにSDカードの空き容量があるようです。
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
カードを買いました。カメラは、サイズが32GBの古いカードを使用した場合よりも長い(2倍の)ビデオで新しいカードで記録できることを示しています。
Ext4ファイルシステムでPCのSDカードをフォーマットしました。最初に容量を確認したところ、約30 GBでした。
ExFatでSDカードをフォーマットし直しました。パソコンで容量を確認しました。まだ約30GBでした。 SDカードをカメラに挿入しました。カメラは、以前のように32GBカードを使用するよりも長くビデオを録画できることを示しています。
AndroidデバイスでSDカードを再編成しました。 Androidデバイスは、カードの容量が60 GBであることを示しています。次に、カードをPCに挿入しました。 PCは正しい容量-60GBを表示し始めました。
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
dd if =/dev/zero of = 1gb_file bs = 1024 count = 1048576
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を書き込むことができました。
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
# 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カードリーダーの問題です。
結論を今すぐ答えとして書き上げると思います。簡単な答えは、USB SDカードリーダーに欠陥があるということです。カードのサイズが実際よりも小さいことが報告されています。カードをAndroidデバイスでフォーマット(フル容量を使用)してからコンピューターにマウントすると、ディスク全体に正しくアクセスできず、ファイルがすぐに破損します。
返却するか、現在のリーダーを取り除き、カードの全容量を適切に認識する新しいリーダーを取得します。
SDカードリーダーはHC標準であるため、最大32 GBのSDカードを読み取ることができます。大容量のSDカードにはXC標準リーダーが必要です。