如何格式化USB闪存驱动器?

在Windows中,闪存驱动器的右键弹出菜单中有一个直接的“格式化”选项。在Ubuntu中该选项在哪里?

Ubuntu 18.04在文件上右键点击USB驱动器时,有一个"格式化..."选项。 - Stefan_EOX
14个回答

你可以使用“Disks”。它是默认安装的,而且易于使用。

Disks application appears in Dash search

点击Dash图标 搜索"Disks" 点击<强调>Disks 应用程序将显示出来:

choose device in Disks interface left bar

  • 第一步:选择USB闪存驱动器
  • 第二步:点击“齿轮”图标,选择“格式化”

一个小窗口将出现,只需选择您想要的选项,然后点击格式化

Erase option, filesystem type option, and Name field shown in Format Volume dialog


顺便说一句,我相信你首先需要卸载。 - Jatin Dhoot
在Ubuntu 14.04中,磁盘工具可能不会默认选择分区--点击大的宽矩形(可能被称为分区1),然后格式化选项将被启用。 - Steve Koch
2就我所知,当从命令行界面(例如在i3中)启动时,名称为gnome-disks - Raphael
我需要这个链接先:https://askubuntu.com/questions/500549/how-to-run-gnome-disk-utility - pateksan
来自未来2020年的问候。嘿,这在20.04仍然有效! - dance2die

使用GParted

GParted screenshot

看视频

你可以安装它

  • 从Ubuntu软件中心或

  • 在命令行上:

    sudo apt install gparted
    

使用命令行

查看视频

要在您的计算机上显示USB驱动器与所有存储分区和卷一起使用以下命令: ``` lsblk ``` 您也可以使用: ``` df ``` 假设可能是`/dev/sdy1`。使用以下命令卸载它: ``` sudo umount /dev/sdy1 ``` 要使用FAT32文件系统格式来格式化驱动器,请使用以下命令: ``` sudo mkfs.vfat -F 32 /dev/sdy1 ``` 在此过程中为您的闪存驱动器设置文件系统标签,请使用以下命令: ``` sudo mkfs.vfat -F 32 -n 'name_for_your_pendrive' /dev/sdy1 ``` 您必须包含`-F 32`部分来指定FAT大小,在Ubuntu 19.10中,它不是默认值32。有关更多信息,请参阅`man mkfs.fat`。

4即使USB被写保护,它也能正常工作。非常感谢。 - Mansoorkhan Cherupuzha
对于U盘,您不需要使用-I选项,而是可以选择使用:mkfs.fat -v -F 32 -n "MyUsbStick" /dev/sda - not2qubit
要重新命名FAT16或32文件系统,我更习惯使用以下命令:sudo mlabel -i /dev/sdy1 ::name_for_your_pendrive(一行输入,注意冒号后有两个冒号) - kFly
GParted对于Debian也非常有用。 - undefined

命令行方式

如果你无法通过图形界面进行设备格式化,可以尝试使用命令行方式。

  1. 打开终端(Ctrl+Alt+T

  2. 通过输入命令lsblk列出您的块存储设备
    然后通过其大小识别您的U盘。在我的情况下是/dev/sdb

    enter image description here

  3. 清空U盘中的所有内容(此步骤可选)

    sudo dd status=progress if=/dev/zero of=/dev/sdb bs=4k && sync  
    

    /dev/sdb替换为您对应的设备。

    非常小心地输入这个名称,否则可能会误删其他磁盘。这需要一些时间。(选项status=progress不是必需的,但可以提供一些反馈)

    它会似乎卡住,请耐心等待。

    例如:

    dd if=/dev/zero of=/dev/sdb bs=4k && sync
    dd: error writing '/dev/sdb': No space left on device
    
    1984257+0 records in
    1984256+0 records out
    8127512576 bytes (8.1 GB) copied, 1236.37 s, 6.6 MB/s
    
  4. 在设备中创建一个新的分区表:

    sudo fdisk /dev/sdb
    

    然后按下字母o创建一个新的空DOS分区表。

  5. 创建一个新的分区:

    • 按下字母n添加一个新的分区。您将被要求输入分区的大小。如果不确定,请选择主分区。

    • 然后按下字母w将表写入磁盘并退出。

  6. 格式化您的新分区。

    • 使用命令lsblk查看您的新分区标签
      在我的情况下是/dev/sdb1再次注意这个名称,因为没有任何保护措施来防止您误删其他磁盘。

    lsblk output

    • 执行以下命令来格式化新卷:

      sudo mkfs.vfat /dev/sdb1  
      

      请将/dev/sdb1替换为您对应的设备。

    • 弹出设备:

      sudo eject /dev/sdb
      

19如果你在等待dd时失去耐心,你可以随时执行以下操作:ps aux | grep dd 复制进程ID然后 watch -n 4 kill -USR1 pid - Donald Derek
2与GUI方式相反,它实际上可以正确格式化U盘,并且允许使用“-n <name>”参数来设置该磁盘的标签。对我来说,GUI方式不起作用。 - Matthias Hryniszak
使用dd命令擦除后,您可以尝试重新连接并在图形界面中进行分区。 - Krishnadas PC
这很棒。我建议还执行 sudo apt-get install pmount - 它会自动处理 sync 并在同一位置重新挂载。 - SDsolar
在第三步的dd命令中加上status=progress参数。这样可以给您反馈,以便了解擦除进度情况。 - quapka
2在退出fdisk之前(步骤5),首先输入t然后选择十六进制代码b来设置正确的分区类型为“W95 FAT32”。 - igor
详细步骤请参考:https://www.redips.net/linux/create-fat32-usb-drive/ - Ferroao
1但是,不要使用B型,而是使用C型,或者,https://dottheslash.wordpress.com/2011/11/29/deleting-all-partitions-on-a-usb-drive/。 - Ferroao
我搞坏了一个USB驱动器,目前正在尝试使用上面描述的终端方式来重新写入分区表。但是,dd确实需要很长时间。我让它在恢复模式下运行了整个晚上(所以电脑只进行这项操作),只完成了1.8GB,速度为40kb/s - 这还仅仅是因为它开始时以1.5GB的速度工作。有没有办法加快速度?要完成这32GB的存储空间可能需要几周的连续工作时间... - il mietitore
这些步骤对我有效,除了mkfs步骤。我收到错误消息 mkfs.vfat: /dev/sdb1 contains a mounted filesystem. 我通过在运行mkfs命令之前运行umount /dev/sdb1来解决此错误。 - Trevor
如果你在dd命令中使用一个更大的块,比如4M,会有问题吗?肯定会加快速度。 - fkaralis
也许你可以编辑你的回答,包括@igor和@Ferroao的评论,不要使用其他程序,只使用fdisk - Timo

gparted - 格式化驱动器和硬盘等的唯一选择。您可以在Ubuntu软件中心下载,只需搜索gparted


运行以下命令以从终端格式化USB为fat32文件系统:
sudo su
fdisk -l 

(这有助于发现您的闪存驱动器 /dev/sdxx)
umount /dev/sdxx

然后将您的设备格式化为FAT32。
mkdosfs -F 32 -I /dev/sdxx

在命令fdisk -l中,"xx"代表您的USB驱动器的最后几个字母。


在执行mkdosfs之前,您首先要使用sudo dd if=/dev/urandom of=/dev/sdxx count=24来清除分区表。如果您打算使用mkfs创建EXT文件系统,同样也适用这个步骤。 - SDsolar
1Sdb and sdb1 之间有什么区别?我原以为应该使用 sdb,因为我要格式化整个驱动器,但事实证明 sdb1 也能正常工作。 - Yan King Yin

使用sfdisk命令行的非交互式方法
echo 'start=2048, type=83' | sudo sfdisk /dev/sdX
sudo mkfs.ext4 /dev/sdX1

擦除所有数据,并创建一个占用全部USB空间的ext4文件系统的单个分区。
根据以下输出选择X
sudo lsblk
sudo fdisk -l

有关sfdisk的更详细描述,请参阅:https://superuser.com/questions/332252/creating-and-formating-a-partition-using-a-bash-script/1132834#1132834 fdisk自动化 也可以使用以下方法完成上述操作:
printf 'o\nn\np\n1\n\n\nw\n' | sudo fdisk /dev/sdX

但是这种方法的可维护性不如sfdisk,sfdisk是专门为脚本化分区而设计的,尤其是当您想创建更复杂的分区表时。

以下是一些指示:
将您的闪存驱动器插入一个空的USB端口,并备份驱动器上的任何数据。打开主菜单,将光标移动到"附件"上,然后点击"终端"。在终端提示符下,输入sudo apt-get install gparted并按下Enter键。
在提示时输入您的Ubuntu管理员密码并按下Enter键。这将下载并安装GParted,它是一个开源的驱动器分区程序。
安装完成后,转到Ubuntu主菜单,将光标移动到"系统"上,选择"管理",然后点击"分区编辑器"。在提示时输入管理员密码并点击"确定"。
在工具栏中点击"GParted"。将鼠标悬停在"设备"上,并从列表中选择您的USB闪存驱动器(例如dev/sdb1)。在主GParted窗口中右键点击设备,并选择"卸载"。设备卸载可能需要几分钟时间。
设备卸载后再次右键点击设备,并将鼠标悬停在"格式化为"上。选择所需的文件系统类型--RiserFS、linux-swap、Ext 2、Ext 3、FAT16或Fat32等--然后在工具栏中点击"应用"。根据闪存驱动器的大小,GParted完成该过程需要三到四分钟的时间。
在闪存驱动器格式化完成后关闭GParted。要挂载您的USB闪存驱动器,先将其拔出,然后再插入。现在,该驱动器已准备好以您选择的文件格式存储数据。

将USB驱动器恢复为标准存储设备

安装并使用mkusb(mkusb-dus),它可以格式化或恢复USB驱动器为标准存储设备(具有MSDOS分区表和FAT32文件系统的分区)。这些说明也适用于其他驱动器(存储卡、硬盘驱动器、HDD、固态硬盘SSD)。

如果您使用标准版Ubuntu,可能需要额外的指令来获取Universe软件源。(Kubuntu、Lubuntu...Xubuntu会自动激活Universe软件源。)

sudo add-apt-repository universe  # only for standard Ubuntu

sudo add-apt-repository ppa:mkusb/ppa  # and press Enter
sudo apt-get update
sudo apt-get install mkusb mkusb-nox usb-pack-efi

请查看以下链接以获取更详细的说明:
- [mkUSB-quick-start-manual.pdf],如果链接无法打开,请使用[this alternate link] - [help.ubuntu.com/community/mkusb]
mkusb版本12,别名mkusb-dus: [enter image description here] mkusb在恢复过程中首先会擦除前1MB 有时候一些数据会“欺骗”软件,让它误以为U盘不工作,即使U盘是好的,只需擦除前一兆字节就可以清除这些数据。你可以使用一个无法正确识别或理解引导系统结构的工具来“查看”驱动器,比如如果它是从ISO文件克隆而来。

如果mkusb失败了怎么办

USB闪存驱动器可能有很多故障原因,所以值得尝试不同的方法。如果mkusb失败了,请按照以下列表进行尝试:

  • 在某些U盘和许多存储卡上,有一个用于写保护的小型机械开关,可以在读/写模式和只读模式之间切换。你可能意外将其设置为只读。
  • 重新启动计算机,然后尝试使用mkusb还原或擦除前一兆字节。
  • 断开其他USB设备。有时USB设备可能会相互干扰。
  • 尝试其他USB端口和另一台计算机。
  • 在另一台计算机上尝试其他操作系统(Windows、MacOS)。
  • 如果仍无法擦除驱动器的前一兆字节,并且驱动器是只读的,那么它可能已经“锁死”,下一阶段将完全“变砖”。
有一个限度,当你不得不接受U盘已经损坏到无法修复的程度时,至少对于像你和我这样的普通用户来说,可用的工具是有限的。请查看此链接:

U盘寿命


首先使用fdisk -l命令来查看USB分区,然后根据以下情况进行操作:
ext == > mkfs.ext3 /dev/sda1
FAT/FAT32 ==> mkfs.vfat /dev/sda1

注意:您必须是root用户或使用sudo来执行此操作。

如果你正在使用Ubuntu 12.04 LTS,那么你可以很容易地完成这个操作。只需插入你的USB设备,在左侧面板中会看到一个USB图标。将鼠标移到上面并右键点击,会出现一个格式化选项。