Ubuntu

系統聲稱我的 USB 在我插入時已安裝,但我無法(解除安裝)安裝它。我該如何解決?

  • July 28, 2015

我正在執行 Ubuntu 14.10 伺服器(無頭)。

我有一組 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

最後一行是問題的根源。只需將其刪除即可解決所有問題。

在嘗試此操作之前,請嘗試使用其他指南/解決方案。如果其他服務正在積極嘗試讀/寫/鎖定此分區,我不知道這可能會對您的系統或設備產生任何影響。

嘗試umount -f /media/sdb1umount -l /media/sdb1

如果一切都失敗了,您可以手動編輯/etc/mtab以刪除有問題的安裝條目。

引用自:https://unix.stackexchange.com/questions/218925