我有一个 USB 盘。当我将其插入PC时,USB接口显示两个分区:sdb1
和sdb4
。
root@debian:~# fdisk -l
Disk /dev/sda: 149.1 GiB, 160041885696 bytes, 312581808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa350a350
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 206847 204800 100M 7 HPFS/NTFS/exFAT
/dev/sda2 208894 312580095 312371202 149G f W95 Ext'd (LBA)
/dev/sda5 240011264 306278399 66267136 31.6G 7 HPFS/NTFS/exFAT
/dev/sda6 306280448 312580095 6299648 3G 82 Linux swap / Solaris
/dev/sda7 208896 80285695 80076800 38.2G 83 Linux
/dev/sda8 80287744 163878911 83591168 39.9G 83 Linux
/dev/sda9 163880960 240011263 76130304 36.3G b W95 FAT32
Partition table entries are not in disk order.
Disk /dev/sdb: 14.6 GiB, 15610576896 bytes, 30489408 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc3072e18
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 16128 30489407 30473280 14.5G c W95 FAT32 (LBA)
/dev/sdb4 11580256 13523807 1943552 949M 0 Empty
sdb1
和怎样组合sdb4
成 sdb
?
奇怪的是它显示为深圳发展银行, 仅有的sdb1可以检测到,sdb4在gparted中检测不到。
让我们使用以下命令获取 sdb 中的 mbr
dd if=/dev/sdb of=/home/mbr.img bs=512 count=1
用 xxd 输出 mbr.img。
xxd /home/mbr.img
如何修复mbr?
答案1
好吧,如果你想要它们,/dev/sdb
你需要完全删除分区表。也许最简单的方法就是备份文件系统并重新创建它。
sudo mount /dev/sdb1 /mnt
tar -C/mnt -cf /tmp/sdb .
sudo umount /mnt
sudo dd if=/dev/zero of=/dev/sdb bs=1kx1k count=4
sudo mkfs.vfat /dev/sdb
sudo mount /dev/sdb /mnt
tar -C/mnt -xf /tmp/sdb
...我认为这涵盖了它...
还有其他解决方案 - 例如fatresize
和类似 - 但它们不那么可靠。真正的问题是 FAT 文件系统并没有提供太多任何类型的智能——无论是用户空间工具还是其他方式。通过一些研究,您可以弄清楚如何在字节偏移级别执行此操作,但我认为您会发现执行上述操作会减少麻烦。
答案2
您需要删除分区sdb1
和sdb4
.这样,它将成为单个存储设备,您可以通过创建一个分区来使用它。
SDB1
警告:这样做会删除和的所有内容SDB4
。请进行备份,以防万一,这些数据对您至关重要。