在 Ubuntu 15.10 上,当我想使用 NTFS 文件系统格式化通过 USB3 连接的外部 4TO 磁盘(在 StarTech USB/eSATA 硬盘底座上)时,我有很多I/O 错误,并且格式化失败。
我在最新的 live CD 上尝试了 GParted v 0.19 和 GParted,但遇到gparted-live-0.23.0-1-i586.iso了同样的问题。
之后,在 Ubuntu 15.10 和相同的 USB3 连接上使用 GParted,我尝试格式化为ext4,没有问题。这真的很奇怪。
因为不知道mkfs.ext4GParted用来格式化磁盘的工具是不是对磁盘进行了像(或不像)这样的测试mkntfs,所以首先假设问题出在新磁盘上。也许这个新磁盘引起了问题。所以我尝试e2fsck -c在这个硬盘上运行。在 Ubuntu 15.10 上,e2fsck -c冻结在 0.45%,我不知道为什么。
因此,在同一台 PC 上使用另一个版本的 Ubuntu (15.04),我尝试使用 StarTech HDD 扩展坞的 eSATA 连接来连接同一个 4TO 磁盘。这一次,e2fsck -c运行正确。
几个小时后,您可以看到结果:
sudo e2fsck -c /dev/sdc1
e2fsck 1.42.12 (29-Aug-2014)
ColdCase : récupération du journal
Vérification …Run Code Online (Sandbox Code Playgroud) 将 U 盘或设备插入计算机时,始终存在设备是恶意的风险,将充当 HID 并可能对计算机造成一些损害。我怎样才能防止这个问题?在特定 USB 端口上禁用 HID 是否足够?我怎么做?
使用 Arch Linux / XFCE,我经常遇到未正确安装的 USB 驱动器问题。有时它们会自动出现在 Thunar 中,我可以一键安装它们。但是,在其他时候(大约是五十/五十),只是无法识别驱动器。我在使用 USB 外置硬盘、USB 记忆棒和相机时遇到过这个问题。如果无法识别外部驱动器,则是这种情况:
fdisk -l(它只显示我的硬盘驱动器)/dev/disklsusb 所以有某种认识,但我不明白为什么,也不知道发生这种情况时如何安装驱动器。我只是重新启动并希望下次可以正常工作,这显然不方便......
更新
当我监控时/var/log/everything.log(系统日志中没有信息),然后我在插入 USB 时看到这种情况:
Dec 14 15:36:32 localhost kernel: [ 6591.042911] usb 1-3: new high speed USB device number 9 using ehci_hcd
Dec 14 15:36:32 localhost mtp-probe: checking bus 1, device 9: "/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3"
Dec 14 15:36:32 localhost mtp-probe: bus: 1, device: 9 was not an MTP device
Run Code Online (Sandbox Code Playgroud)
这是另一个请求的输出:
$udevadm monitor
monitor will print the received …Run Code Online (Sandbox Code Playgroud) 我有 USB Zigbee 加密狗,但无法连接到它。它短暂地出现在 中/dev/ttyUSB0,但很快就消失了。我在控制台中看到以下输出:
$ dmesg --follow
...
[ 738.365561] usb 1-10: new full-speed USB device number 8 using xhci_hcd
[ 738.607730] usb 1-10: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 738.607737] usb 1-10: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 738.607739] usb 1-10: Product: USB Serial
[ 738.619446] ch341 1-10:1.0: ch341-uart converter detected
[ 738.633501] usb 1-10: ch341-uart converter now attached to ttyUSB0
[ 738.732348] audit: type=1130 audit(1632606446.974:2212): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=brltty-device@sys-devices-pci0000:00-0000:00:01.3-0000:03:00.0-usb1-1\x2d10 …Run Code Online (Sandbox Code Playgroud) USB 事件从内核空间到用户空间的流程是怎样的?当我插入 USB 驱动器时,我的桌面上会出现一个弹出窗口——从检测到新的 USB 驱动器到安装它并显示该弹出窗口的事件顺序是什么?
我最近在解决耳机问题时发现了 lsusb 命令。
我的笔记本电脑运行 debian,目前没有任何东西插入 USB,但是当我运行“lsusb”命令时,我仍然得到相当多的输出:
root@t500:~# lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 0a5c:2145 Broadcom Corp. Bluetooth with Enhanced Data Rate II
Bus 004 Device 002: ID 08ff:2810 AuthenTec, Inc. AES2810
Bus 004 Device 001: ID …Run Code Online (Sandbox Code Playgroud) 我有一个鼠标会随机停止工作。解决办法很简单,拔掉再重新插上。有没有办法通过命令行来做到这一点?通过命令行执行有一些优点。
另外我很好奇如何做到这一点。
操作系统是 Debian 8。
谢谢!
使用时 lsusb,我发现一个USB设备的总线号和设备号会时不时的发生变化。据我了解,总线编号可以在每次重新启动时更改。设备编号将在每次重新连接时更改。
我的问题是系统使用什么算法来获取总线号和设备号?尤其是设备号,是不是单调的?是否会出现在不重新启动操作系统的情况下,一个重新连接的设备正在使用另一个重新连接的设备的旧总线号和设备号的情况?
我在外部机箱中有一个笔记本电脑硬盘驱动器,用作大型笔式驱动器。另外,我在其上安装了 Linux,因此我可以使用我选择的发行版启动任何机器(例如,用于数据恢复或修复 b0rked 系统或仅使用借来的笔记本电脑而不破坏预装的 Windows)。
问题是,根据硬件配置,USB 硬盘驱动器可能在不同路径下可见。对于 grub 配置,我只是使用(hda0,0)它,因为它与启动 grub 的设备相关。我在/etc/fstab. 我还在rootwait内核参数中指定,以便它在尝试挂载设备之前等待 USB 子系统稳定下来。
我应该将什么传递给内核root=?目前,从 pendrive 启动一次,检查调试消息以查看/dev/sdX内核已将哪些设备分配给 USB 驱动器,然后重新启动并编辑 grub 配置。除了Boot from USB hard drive在 BIOS 中启用并将其设置为比内部硬盘驱动器更高的优先级之外,我无法更改 PC 上的任何内容。
有多种 initrd 生成脚本在根设备路径中包含对 UUID 的支持,不幸的是,Gentoo 原生脚本(genkernel)不支持rootwait,我没有运气尝试使用其他脚本。
启动过程是这样的(在 Windows 中非常相似):
root,使用(hd0)它从 BIOS 加载的设备。(hd0,0)再次使用)。rootwait现在是不是很神奇)。root(这是一个内核参数,而不是 grub …我试图让一个带有自定义 PID 的 FTDI USB 串行设备自动(甚至手动)连接到 ttyUSB%n,但没有取得多大成功。设备的正常 VID/PID 为 0403/6001。以这种方式编程时,它可以完美运行并在插入时自动将自身连接到 ttyUSB0。即使重新编译驱动程序以尊重我们的新 PID,当使用自定义的 ttyUSB0 编程时,也不会出现,但它确实将其识别为 ftdi_sio 设备并且加载驱动程序。
我已将我们的 PID 添加到标题和源代码中:
// in ftdi_sio_ids.h
#define FTDI_CUSTOM_PID 0xABCD // not the actual pid
Run Code Online (Sandbox Code Playgroud)
// then in ftdi_sio.c
static struct usb_device_id id_table_combined [] = {
// devices....
{ USB_DEVICE(FTDI_VID, FTDI_CUSTOM_PID) },
// ....
Run Code Online (Sandbox Code Playgroud)
重新编译整个内核并刷新设备。当我插入设备时,我得到:
usb 1-1: new full-speed USB device number 2 using at91_ohci
usbcore: registered new interface driver usbserial
usbserial: USB Serial Driver core
USB Serial support registered for FTDI USB Serial Device …Run Code Online (Sandbox Code Playgroud) usb ×10
drivers ×2
kernel ×2
linux ×2
arch-linux ×1
boot ×1
debian ×1
e2fsck ×1
embedded ×1
external-hdd ×1
grub2 ×1
hid ×1
hot-plug ×1
mount ×1
security ×1
serial-port ×1
usb-device ×1
usb-drive ×1