系統聲稱我的 USB 在我插入時已安裝,但我無法(解除安裝)安裝它。我該如何解決?
我正在執行 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/sdb1
或umount -l /media/sdb1
。如果一切都失敗了,您可以手動編輯
/etc/mtab
以刪除有問題的安裝條目。