我的硬盘有一些问题-可能是坏了,也许SATA电缆坏了,我只是在调查它。有一件事很奇怪。
我可以使用以下方法从该设备读取原始数据:
# cat /dev/gcw/root > /dev/null但是,当我试图安装这个设备时,我使用:
# mount -o ro /dev/gcw/root /mnt/lvroot我会犯错。Dmesg说:
[ 3561.281369] ata6.01: failed command: WRITE MULTIPLE EXT
[ 3561.281384] ata6.01: cmd 39/00:08:27:92:1c/00:00:39:00:00/f0 tag 0 pio 4096 out
[ 3561.281384] res 51/84:01:2e:92:1c/84:00:39:00:00/f0 Emask 0x10 (ATA bus error)
[ 3561.281393] ata6.01: status: { DRDY ERR }我的问题是:当我试图挂载这个设备时,操作系统为什么要写这个设备(命令“写多个分机”是用来写的)?
发布于 2015-04-18 22:08:12
有些文件系统的只读挂载会触发写操作。我知道的一个例子是日志文件系统,如果您安装的文件系统没有干净地卸载,就会触发日志的重放,甚至是只读挂载。
在Linux上使用ext3或ext4时,传递noload挂载选项:
mount -o ro,noload /dev/gcw/root /mnt/lvroot不幸的是,这会导致日志根本不被重播,甚至在内存中也不会被重放,这可能会使文件系统显示不一致的数据。
我认为可以创建一个虚拟块设备,这样可以写入内存层,但是原始内容是由磁盘上的块设备提供的。有关接近您的场景的示例,请参见GNU/Linux:覆盖块设备/可堆栈块设备。
https://unix.stackexchange.com/questions/197021
复制相似问题