如何重置被 dd 破坏的闪存驱动器

如何重置被 dd 破坏的闪存驱动器

我有一个 64GB 闪存驱动器,之前我已经在其中dd安装了 Debian。我想再次执行此操作(dd将完整的 Debian 从我的机器安装到闪存驱动器上),但我遇到了一些奇怪的问题,如下所述:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 447.1G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0    28G  0 part /
└─sda3   8:3    0  20.5G  0 part /home
sdb      8:16   1  57.7G  0 disk 
├─sdb1   8:17   1   335M  0 part 
└─sdb2   8:18   1   2.8M  0 part

闪存驱动器sdb报告的尺寸比我所知的要小。缺失的8GB去哪儿了?dd似乎找到了他们:

$ sudo dd if=/dev/zero of=/dev/sdb
16238561+0 records in
16238560+0 records out
8314142720 bytes (8.3 GB, 7.7 GiB) copied, 16.2814 s, 511 MB/s

总结一下:闪存驱动器/dev/sdb似乎有 58GB(比以前小 8),但两个分区中似乎只有几百 MB 可见。直接写入/dev/sdb似乎只暴露8GB。

编辑:

dmesg卸下并重新插入驱动器时的输出:

[ 4952.579464] usb 1-1: USB disconnect, device number 11
[ 4971.326113] usb 1-1: new high-speed USB device number 12 using xhci_hcd
[ 4971.492654] usb 1-1: New USB device found, idVendor=0951, idProduct=1666, bcdDevice= 1.10
[ 4971.492660] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4971.492663] usb 1-1: Product: DataTraveler 3.0
[ 4971.492666] usb 1-1: Manufacturer: Kingston
[ 4971.492669] usb 1-1: SerialNumber: 1831BFB81BC8B36039AB0126
[ 4971.494616] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 4971.494900] scsi host6: usb-storage 1-1:1.0
[ 4972.507815] scsi 6:0:0:0: Direct-Access     Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6
[ 4972.508438] sd 6:0:0:0: Attached scsi generic sg1 type 0
[ 4972.508714] sd 6:0:0:0: [sdb] 121061376 512-byte logical blocks: (62.0 GB/57.7 GiB)
[ 4972.509130] sd 6:0:0:0: [sdb] Write Protect is off
[ 4972.509134] sd 6:0:0:0: [sdb] Mode Sense: 45 00 00 00
[ 4972.509498] sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

编辑:澄清一下,这里最大的问题是我无法再访问 58GB 的​​驱动器。dd报告写入 8GB 后没有剩余空间。lsblk坚持认为该设备是 58GB,但fdisk同意dd该设备仅为 8GB。

答案1

如果丢失驱动器上的所有数据是可以接受的,您可以按如下方式重置它:

(1) 确保驱动器未安装,或者执行以下操作:

sudo umount /dev/sdb

(2) 删除所有内容(请务必检查该of字段是否正是您要重置的驱动器!)

sudo dd if=/dev/zero of=/dev/sdb bs=2M count=32

(3) 用分区表初始化

sudo fdisk /dev/sdb

在 内部fdisk,创建一个涵盖所有内容的新分区(编号 1),指定分区类型“b”。您可以通过输入字母/命令来完成此操作(//之后是我的评论)

n         // new partition
1         // partition number, if you are asked
<enter>   // Yes, from the first available sector
<enter>   // Yes, to the last one

t         // change the type of partition 1
b         // partition type: Windows 95 FAT32
p         // have a look at what you have done (print)

如果看起来不错 - 1 个分区,整个大小,然后输入“b”

w         // write to disk

然后在新驱动器上创建文件系统/dev/sdb1

sudo mkfs.vfat /dev/sdb1

应该可以做到这一点。除非驱动器已自动安装,否则请卸下并重新插入驱动器。

相关内容