这个问题可能之前有人问过,但我找不到,所以我会再问一次。以下是我所做的:
sudo dd if=./windows.iso of=/dev/sdb
#sdb 是 64gb 的 USB 磁盘
之后,我无法添加到磁盘,因此我将其格式化为 NTFS,并尝试手动复制文件,此时我收到此错误:
我认为这不是一个 Ubuntu 的问题,而是一个 dd 的问题,或者是我使用 dd 的能力的问题,因为我之前在 mint 和 cyanogenmod 上使用 dd 时也遇到过同样的问题。
答案1
一个快速修复(以及一种破解)使其退出只读模式(这将删除 USB 设备的内容!)是在 ubuntu 中打开“启动磁盘创建器”并选择擦除该设备,它将退出只读模式。
“这有效。但是为什么呢?我怎样才能在终端中做到这一点?”
我不知道具体原因,但似乎与 Python 有关。我正在做一些调查,并将报告任何发现。
如何在终端中:
根据这个帖子您可以使用 hdparm 更改只读属性,如下所示(假设设备是 /dev/sdb):
sudo hdparm -r0 /dev/sdb
然后,重新安装设备。这可能涉及简单地拔下并重新插入设备,或者您可以运行以下命令以读/写模式重新安装设备:
sudo mount -o remount,rw /dev/sdb /media/$USER/8E22-6590
答案2
首先找出设备:lsblk
假设 USB 驱动器处于 状态/dev/sdb
。如果其任何分区已挂载,则将其全部卸载。
让我们将设备清零。这将彻底清除其所有分区和数据。请确保您使用的是dd
正确的设备,以防万一/dev/sdb
$ sudo dd if=/dev/zero of=/dev/sdb; sudo sync
使用您选择的任何磁盘实用程序(、、gdisk
)并在其上创建一个分区。fdisk
gparted
$ sudo gdisk /dev/sdb
Command (? for help): n
Partition number (1-128, default 1): <enter>
First sector (34-15634398, default = 2048) or {+-}size{KMGTP}: <enter>
Last sector (2048-15634398, default = 15634398) or {+-}size{KMGTP}: <enter>
Hex code or GUID (L to show codes, Enter = AF00): 0700
Changed system type of partition to 'Microsoft basic data'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/disk1.
The operation has completed successfully.
gdisk 不会创建文件系统,因此运行..
$ sudo mkfs.vfat /dev/sdb1
答案3
每次我将可启动 CD/DVD 复制到闪存驱动器时,我都会使用一个名为 unetbootin 的实用程序。它使闪存驱动器在各个方面都与光盘驱动器完全相同,这意味着它的只读状态保持不变。
如果要在闪存驱动器上创建 Ubuntu 安装,则必须采用老式方法,即直接将 Ubuntu 安装到闪存介质上,就像它是硬盘一样。它与将其安装到硬盘上一样,难度不大,但这是(据我所知)实现真正安装的唯一方法。
如果你看过我的个人简介,你就会发现,好几年来我一直都在做这件事,维护一个完美的(IMHO)主安装,并将主安装克隆到空白的高速 USB 闪存驱动器上。