我正在运行 Ubuntu 14.10 Server(无头)。
我有一组 USB 闪存驱动器,需要重新格式化才能在多个设备上使用。我已成功安装、格式化、将文件复制到以及卸载三个设备。安装第四个后,系统认为该驱动器的第一个分区已经安装;它以前从未插入到服务器中。我根本无法安装或卸载该分区。此时,我假设这是我一路上某个地方的错,但我无法让事情恢复正常。
设备
USB 驱动器将格式化为两个分区和一个空的 8MB 标头。该表是必需的,因为它们将用于专用设备。每个设备的大小大约为 2GB
USB Partition table (to-be): [-EMPTY 8MB-|-- >1.1GB FAT 16--|--751MB FAT16--]
USB 设备至少有一个 Ext4 或 Fat16 的预格式化分区。
情况
我已插入新的 USB 设备。尝试挂载设备失败:
$ sudo mount sdb1
mount: can't find sdb1 in /etc/fstab
$ ls /media # Mounting a partition defaults to here
<empty>
$ pmount sdb1
Error: device /dev/sdb1 is already mounted to /media/sdb1
$ ls /media
<empty>
df
/dev/sdb1
根本不显示
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 944392620 35959148 860437980 5% /
none 4 0 4 0% /sys/fs/cgroup
udev 8183068 4 8183064 1% /dev
tmpfs 1638852 5640 1633212 1% /run
none 5120 0 5120 0% /run/lock
none 8194244 0 8194244 0% /run/shm
none 102400 4 102396 1% /run/user
/dev/sda1 523248 3436 519812 1% /boot/efi
fdisk
正确显示设备
Disk /dev/sdb: 1.9 GiB, 1993342976 bytes, 3893248 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: 0x5651d77f
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 2353151 2351104 1.1G 83 Linux
/dev/sdb2 2353152 3893247 1540096 752M 6 FAT16
GParted
将正确显示设备(大小、分区、表等),但显示sdb1
已安装。我可以删除分区,格式化为ext4,但无法格式化为Fat16。
我能但是,sdb2
通过挂载pmount
并查看任何存在的文件。卸载、分区、擦除总是成功的。如果我插入其他设备(例如sdc
),我可以毫无问题地进行任何更改。如果我交换这个设备,我sdc
仍然sdb
可以毫无问题地访问它。
我假设我搞砸了,没有sdb1
在之前的设备上正确卸载,从而导致了这个问题。我还假设它mkfs.vfat
也遇到了问题,因为mkfs.ext3,mkfs.ext4
运行时不会出现错误。
有办法解决这个问题吗?我的(唯一)解决方案是重新启动系统吗?我希望避免这种情况,因为我们已经启动并运行了多个数据获取和数据托管服务。
解决方案
非常感谢史蒂夫对于他的简单解决方案。在我所有的搜索中,我没有碰巧遇到这个。
如果df
、fdisk -l
、umount -l
、pumount
不起作用,那么您应该检查/etc/mtab
下一步。该文件包含以下内容:
/dev/sda2 / ext4 rw,errors=remount-ro 0 0
proc /proc proc rw,nodev,noexec,nosuid 0 0
sysfs /sys sysfs rw,nodev,noexec,nosuid 0 0
none /sys/fs/cgroup tmpfs rw,uid=0,gid=0,mode=0755,size=1024 0 0
. . .
systemd /sys/fs/cgroup/systemd cgroup rw,nosuid,noexec,nodev,none,name=systemd 0 0
/dev/sdb1 /media/sdb1 ext4 rw,nodev,nosuid,noexec,errors=remount-ro,user 0 0
最后一行是问题的根源。只需将其删除即可解决所有问题。
在尝试此操作之前,请尝试使用其他指南/解决方案。我不知道如果其他服务正在积极尝试读/写/锁定此分区,这可能会对您的系统或设备产生任何影响。
答案1
尝试umount -f /media/sdb1
或umount -l /media/sdb1
。
如果所有其他方法都失败,您可以手动编辑/etc/mtab
以删除有问题的安装条目。