USB 只读文件系统

USB 只读文件系统

我现在对 Linux 很有信心,但这个 USB 记忆棒抱怨只读文件系统,但我一分钟前在 Windows 7 中写入它,没有任何问题。我已经尝试了其他帖子中的所有建议以及我能想到的所有方法。

以下是表明写保护已关闭的 dmesg:

[ 5563.009330] scsi 11:0:0:0: Direct-Access     SanDisk  Cruzer Edge          1.26 PQ: 0 ANSI: 5
[ 5563.009676] sd 11:0:0:0: Attached scsi generic sg5 type 0
[ 5563.011878] sd 11:0:0:0: [sdi] 31266816 512-byte logical blocks: (16.0     GB/14.9 GiB)
[ 5563.013754] sd 11:0:0:0: [sdi] Write Protect is off
[ 5563.013759] sd 11:0:0:0: [sdi] Mode Sense: 43 00 00 00
[ 5563.014970] sd 11:0:0:0: [sdi] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

问题如下:

adam@Home:~$ sudo mount /dev/sdi ~/usb
mount: /dev/sdi is write-protected, mounting read-only

我还用 DD 将 USB 格式化为零,然后再次尝试:

adam@Home:~$ sudo dd if=/dev/zero of=/dev/sdi bs=1k count=2048
2048+0 records in
2048+0 records out
2097152 bytes (2.1 MB, 2.0 MiB) copied, 0.426446 s, 4.9 MB/s

adam@Home:~$ sudo parted /dev/sdi
GNU Parted 3.2
Using /dev/sdi
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Error: /dev/sdi: unrecognised disk label
Model: SanDisk Cruzer Edge (scsi)
Disk /dev/sdi: 16.0GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted) mklabel msdos
(parted) mkpart primary
File system type?  [ext2]? fat32
Start? 1MiB
End? 100%
(parted) p
Model: SanDisk Cruzer Edge (scsi)
Disk /dev/sdi: 16.0GB
    Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  16.0GB  16.0GB  primary  fat32        lba

(parted) q
Information: You may need to update /etc/fstab.

adam@Home:~$ lsblk
NAME                MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINT
sda                   8:0    0 698.7G  0 disk
└─md0                 9:0    0   2.7T  0 linear /mnt/raiddrives
sdb                   8:16   0 698.7G  0 disk
└─md0                 9:0    0   2.7T  0 linear /mnt/raiddrives
sdc                   8:32   0 698.7G  0 disk
└─md0                 9:0    0   2.7T  0 linear /mnt/raiddrives
sdd                   8:48   0 698.7G  0 disk
└─md0                 9:0    0   2.7T  0 linear /mnt/raiddrives
sde                   8:64   1   7.6G  0 disk
├─sde1                8:65   1   487M  0 part   /boot
├─sde2                8:66   1     1K  0 part
└─sde5                8:69   1   7.1G  0 part
  ├─Home--vg-root   252:0    0   3.2G  0 lvm    /
  └─Home--vg-swap_1 252:1    0     4G  0 lvm    [SWAP]
sdi                   8:128  1  14.9G  0 disk
└─sdi1                8:129  1  14.9G  0 part

adam@Home:~$ sudo mkfs -t vfat /dev/sdi1
mkfs.fat 3.0.28 (2015-05-16)

adam@Home:~$ sudo mount /dev/sdi ~/usb
mount: wrong fs type, bad option, bad superblock on /dev/sdi,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

USB 上没有可以打开或关闭写保护的按钮。

答案1

我修复了它。问题是您必须使用以下命令来创建 Fat32 FS,而不是 sudo mkfs -t vfat /dev/sdi1

sudo mkfs.msdos -F 32 /dev/sdi1

答案2

我想扩展一下约翰·史密斯的回答。我使用 Ubuntu 的“启动媒体创建器”制作了两个可启动的 USB 棒。之后,这两个棒无法使用,因为它们是写保护的,我无法在 Ubuntu 或 Windows 中格式化它们。我试过 fdisk、gparted。没用。
有帮助的是插入棒(确保这是插入的唯一 USB 驱动器),找出它安装的位置:

df -Th

这将显示设备/分区及其挂载路径/点的列表: udev devtmpfs 7,8G 0 7,8G 0% /dev ... /dev/sdb1 vfat 7,5G 4,0K 7,5G 1% /media/<USER_NAME>/<STICK_NAME_OR_ID>

找到您的 USB 记忆棒并记住其分区设备路径(此处:/dev/sdb1)和挂载点(此处:/media/USER_NAME/STICK_NAME_OR_ID)。然后将其卸载:

sudo umount /media/USER_NAME/STICK_NAME_OR_ID

现在重新创建文件系统(本例中为 FAT32):

sudo mkfs.msdos -F 32 /dev/sdb1

稍等片刻,然后拔下记忆棒。再等一会,然后将其插入。现在应该可以写入了……

答案3

这些对我都不起作用。驱动器可以格式化(fat 32),但 Unetbootin 总是将其视为“写保护”。

唯一有效的方法是使用我的 Mac 将 USB 驱动器格式化为 fat 32。之后,一切都很顺利。

想象一下 - 必须使用 Mac 将驱动器格式化为 Win/Dos 格式才能使用 Linux 实用程序。天哪。

答案4

使用 gparted 分区编辑器将 USB 驱动器格式化为 fat32 文件系统。然后将其从 PC 中移除,重新启动 PC,然后重新插入 USB 驱动器。现在它可以工作了。

要授予 USB 读、写、执行权限,请尝试以下命令,

sudo chmod 777 /media/usbpartition-name

相关内容