我有一个 16GB 的 USB 闪存驱动器,不知何故损坏到甚至fdisk -l找不到它的地步(我收到一条单行错误消息:“无法打开 /dev/sdc ”)
但是,它正在附加,被分配/dev/sdc为 dmesg 显示:
usb 1-7: new high speed USB device using ehci_hcd and address 69
usb 1-7: New USB device found, idVendor=048d, idProduct=1167
usb 1-7: New USB device strings: Mfr=0, Product=0, SerialNumber=0
usb 1-7: configuration #1 chosen from 1 choice
scsi68 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 69
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi …Run Code Online (Sandbox Code Playgroud) 我有一个 USB 磁盘,它不允许我在其上格式化/挂载/卸载或创建分区。

使用dmesg | tail给了我以下结果:

我在 AskUbuntu 上找到了这篇文章,并尝试使用接受的答案。我得到以下结果,但它仍然是只读的:

umount不起作用。说umount: /dev/sdc: not mounted
任何有关如何删除写保护的帮助将不胜感激。
我尝试创建一些 udev 规则来挂载和卸载我的 USB 闪存驱动器;目前的规则非常简单:
ACTION=="add",KERNEL=="sd[b-z]",RUN+="/root/scripts/plug_flash_drive.sh %k"
ACTION=="remove",KERNEL=="sd[b-z]",RUN+="/root/scripts/unplug_flash_drive.sh %k"
Run Code Online (Sandbox Code Playgroud)
plug_flash_drive.sh 也很简单:
device_name=$1
mount_options="umask=000,utf8"
if [ ! -e "/media/$device_name" ]; then
mkdir "/media/$device_name"
fi
sleep 1
/usr/bin/mount "/dev/$device_name" "/media/$device_name" -o "$mount_options"
Run Code Online (Sandbox Code Playgroud)
unplug_flash_drive.sh:
device_name=$1
umount "/dev/$device_name"
rmdir "/media/$device_name"
Run Code Online (Sandbox Code Playgroud)
我做了一些测试,所以我可以确定:
有人知道为什么在 udev 调用时不执行 mount 吗?
28/08/14 编辑:我在脚本末尾添加了“grep -q /proc/mounts && echo success || echo failure”,以检查我的调试日志是否在脚本结束之前实际安装了设备。即使 udev 调用了该脚本,该设备似乎也已安装在该点上。所以现在真正的问题是“当通过 udev 调用时,我的块设备似乎在挂载脚本结束后卸载了”:s
我想在没有 CD/DVD 驱动器但有 USB 2.0 端口的笔记本电脑 (Thinkpad R40) 上安装 CentOS 6.2。
CentOS 似乎没有提供即用型的 dd-able USB 映像进行安装。
因此我的问题是:如何通过 USB 设备(例如 16 GB USB 闪存驱动器)安装 CentOS?
关于使用不同的可用 ISO 映像作为基础:笔记本电脑具有网络访问权限 - 但我想确保 CentOS 安装程序在安装过程中不会从网络加载未经检查的软件包 - 也许 netinstall 映像不会在安装过程中检查加密签名的软件包(与 Fedora 14 安装程序一样)。
有一个CentOS的InstallFromUSBkey它只是提供过时的,神秘的和错误的信息。
特别是,CentOS 6 的说明缺少细节并包含错误(第一个分区 10 MB 不够,syslinux device失败,他们在谈论什么 grub?)
看看块设备命令喜欢什么lsblk或blkid返回什么,似乎linux HDD支持SCSI驱动程序而不管设备的类型,就像一个USB闪存驱动程序,在lsblk命令中显示如下:
...
sdb 8:16 1 30G 0 disk
??sdb1 8:17 1 30G 0 part /run/media/user/HP v224w
...
Run Code Online (Sandbox Code Playgroud)
为什么 sdb 和 sda 驱动程序被称为 SCSI 驱动程序?这个术语有什么关系Small Computer System Interface?
设置
我的 USB 机箱(Buffalo DriveStation Quad)包含四个连接到我的 nas 服务器(ubuntu 服务器 14.04)的驱动器。机箱配置为 JBOD 模式,因此我将在 Linux 中看到所有磁盘。
其中两个磁盘(sdb 和 sdc)使用软件 raid 配置为/dev/md0(raid1)。并且/dev/md0作为单个分区 ( /mnt/part1)挂载为ext4 文件系统,没有日志记录。
另外两个磁盘(sdd 和 sde)使用 LVM 设置为一个卷组,我从中安装了两个逻辑分区。其中一个是整个卷组容量的 90% ( /mnt/part2),另一个是 10% ( /mnt/part3)。两者都是没有日志记录的 ext4。
APM 问题
我的问题始于默认的 APM 模式,因为我注意到硬盘驱动器磁头每隔几分钟就会非常积极地停放。在对该主题进行了一番研究后,我最终使用了hdparm -B198 /dev/sd[bcde]. 这似乎可以实现一定程度的节能,但实际上并没有进行任何头部停车。
有睡吗?
我对目前的情况感到满意,但如果没有活动,我仍然希望驱动器进入睡眠状态。尤其是 sdb 和 sdc ( /mnt/part1),它们在 95% 的时间内没有真正获得任何活动。无论我尝试过什么,问题似乎都在于驱动器的睡眠时间不会超过一两分钟。
卸载所有分区并发出命令hdparm -y /dev/sd[bcde]将使驱动器进入睡眠模式,但只会持续几分钟。之后,他们都会一一醒来。我尝试通过启用 block_dump ( echo 1 > /proc/sys/vm/block_dump)来调试问题,但没有看到对磁盘的任何访问。
我还尝试使用 禁用 APM hdparm -B255 /dev/sd[bcde],然后命令它们进入睡眠状态,但同样的事情。几分钟后驱动器仍然会醒来。 …
我对从我的 PC 或笔记本电脑复制到 USB 驱动器的文件的时间戳有问题:原始文件的最后修改时间与复制文件的最后修改时间不同。因此,在我的 PC 和 USB 驱动器之间同步文件非常麻烦。
分步说明
我使用 GUI 或命令将任意文件从我的 PC/笔记本电脑复制到 USB 驱动器
cp -a file.txt /media/gabor/CORSAIR/
Run Code Online (Sandbox Code Playgroud)我检查原始文件的最后修改时间:
$ ls -l --time-style=full-iso file.txt
-rw-rw-r-- 1 gabor gabor 0 2018-09-22 15:09:23.317098281 +0200 file.txt
Run Code Online (Sandbox Code Playgroud)我检查复制文件的最后修改时间:
$ ls -l --time-style=full-iso /media/gabor/CORSAIR/file.txt
-rw-r--r-- 1 gabor gabor 0 2018-09-22 15:09:23.000000000 +0200 /media/gabor/CORSAIR/file.txt
Run Code Online (Sandbox Code Playgroud)如您所见,复制文件的最后修改时间中的秒数被截断为零十进制数字。但是,如果我输入命令
if ! [ file.txt -nt /media/gabor/CORSAIR/file.txt ] && ! [ file.txt -ot /media/gabor/CORSAIR/file.txt ]; then echo "The last modification times are equal."; fi
Run Code Online (Sandbox Code Playgroud)我得到输出 The last modification times are …
当我从 USB 设备(相机、硬盘、存储卡)复制文件时,我的系统变得非常慢。例如,如果我想关闭一个窗口,我会移动鼠标,但在鼠标光标移动之前大约需要 2 秒或更长时间。当我最终将光标移到 x 上并单击它时,10 秒以上没有任何反应。我已经在禁用所有桌面效果的情况下尝试过此操作,但问题仍然存在。
软件:Linux Mint 9 KDE 硬件:
对我来说,这个硬件在运行这个软件时应该没有任何问题,直到我使用 USB 复制文件时才会出现问题。我应该从哪里开始寻找解决这个问题?我有点认为图形驱动程序可能是问题的一部分,但我不确定。
我有一个带有集成闪存的运动手表。该闪存用于存储训练信息。当我使用 USB 数据线将手表连接到我的电脑时,它被检测为写保护的闪存驱动器:
[354703.052138] sd 7:0:0:0: [sdc] Write Protect is on
Run Code Online (Sandbox Code Playgroud)
..而且我显然无法重新安装具有 RW 权限的分区:
root@T60:~# mount -vt vfat -o rw,remount /dev/sdc1 /media/
mount: cannot remount block device /dev/sdc1 read-write, is write-protected
root@T60:~#
Run Code Online (Sandbox Code Playgroud)
我记得hdparm有一个选项可以更改设备的只读标志,并且当 USB 闪存驱动器被检测为 SATA 驱动器时,我尝试了一下,但这也无济于事:
root@T60:~# hdparm -r0 /dev/sdc
/dev/sdc:
setting readonly to 0 (off)
readonly = 0 (off)
root@T60:~# mount -vt vfat -o rw,remount /dev/sdc1 /media/
mount: cannot remount block device /dev/sdc1 read-write, is write-protected
root@T60:~#
Run Code Online (Sandbox Code Playgroud)
我猜手表的设计方式是一旦检测到 USB 连接,就会触发(硬件)USB 写保护开关?这种硬件写保护是 USB 标准的一部分吗?或者还有什么可以尝试的吗?
将sdc1安装在/media/debian/Ventoy。
debian@debian:~$ sudo blkid | grep Ventoy
/dev/sdc1: LABEL="Ventoy" UUID="F82D-76BE" BLOCK_SIZE="512" TYPE="exfat" PTTYPE="dos" PARTUUID="1af31d46-01"
debian@debian:~$ df /media/debian/Ventoy
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdc1 15324256 7971552 7352704 53% /media/debian/Ventoy
Run Code Online (Sandbox Code Playgroud)
显示目录中的内容material。
ls material
'Best Semiconductor Stocks & ETFs in 2021 | The Motley Fool_files' 'How To Use AppImage in Linux [Complete Guide] - It'\''s FOSS_files'
'Best Semiconductor Stocks & ETFs in 2021 | The Motley Fool.html' 'How To Use AppImage in Linux [Complete Guide] …Run Code Online (Sandbox Code Playgroud) usb-drive ×10
block-device ×1
centos ×1
command-line ×1
cp ×1
exfat ×1
file-copy ×1
filenames ×1
filesystems ×1
flash-memory ×1
hard-disk ×1
hdparm ×1
linux ×1
linux-mint ×1
mount ×1
partition ×1
read-write ×1
scsi ×1
timestamps ×1
udev ×1
usb ×1