通过命令行卸载并关闭外部驱动器

通过命令行卸载并关闭外部驱动器

根据这个问题的答案

安全删除驱动器的命令行等效于什么

我写了这个脚本。

#!/bin/bash
echo "This script works on sdb and sdb1"
echo "Have a look at the following and if all is well continue."

lsblk
read -p "press the Enter key if you want to continue..." key
udisksctl unmount --block-device /dev/sdb1
sudo fsck /dev/sdb1
udisksctl power-off --block-device /dev/sdb

我认为指令“查看以下内容,如果一切顺利则继续”的意思是,如果输出lsblk显示我们要删除的驱动器是逻辑驱动器,sdb1则继续。

输出lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 232.9G  0 disk 
├─sda1   8:1    0   549M  0 part 
├─sda2   8:2    0 115.9G  0 part 
├─sda3   8:3    0   833M  0 part 
├─sda4   8:4    0     1K  0 part 
├─sda5   8:5    0 107.9G  0 part /
└─sda6   8:6    0   7.8G  0 part [SWAP]
sdb      8:16   1  14.5G  0 disk 
└─sdb1   8:17   1  14.5G  0 part /media/jack/Flash
sr0     11:0    1  1024M  0 rom  
loop0    7:0    0  89.5M  1 loop /snap/core/6130
loop1    7:1    0  89.5M  1 loop /snap/core/6034
loop2    7:2    0  88.2M  1 loop /snap/core/5897

要删除的驱动器确实是逻辑驱动器sdb1

在过去的 2.5 年里,这个脚本与 Ubuntu 16.04 配合得很好。我平均每周使用这个脚本两次。然后在 2018 年 12 月,调用该脚本导致我的外接鼠标(Logitech Trackman)停止工作(2 次)或导致 Ubuntu 完全挂起并出现乱码屏幕(1 次)。

鉴于 Ubuntu 的变更,apt看起来 Ubuntu 要么有新的错误,要么脚本已过时。考虑到 Ubuntu 目前的状况,正确的解决方案或正确的脚本是什么。

答案1

这是一个已知问题。某些内核会导致操作系统挂起。详情请参见此处关联

由于这是一个内核问题,因此无论您使用 GUI 还是命令行来“安全删除”,都可能导致它发生。

引用链接页面的内容:

这是最新 4.4.0-139-generic、4.4.0-140-generic 和 4.4.0-141-generic Linux 内核的已知问题。在启动板上,它被称为错误 1803929(目前已有 5 位用户确认)。

临时解决方案是使用 138(4.4.0-138-generic)内核。

相关内容