首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以从硬盘读取,但我不能挂载它

问我可以从硬盘读取,但我不能挂载它
EN

Unix & Linux用户
提问于 2015-04-18 07:05:28
回答 1查看 120关注 0票数 1

我的硬盘有一些问题-可能是坏了,也许SATA电缆坏了,我只是在调查它。有一件事很奇怪。

我可以使用以下方法从该设备读取原始数据:

代码语言:javascript
复制
# cat /dev/gcw/root > /dev/null

但是,当我试图安装这个设备时,我使用:

代码语言:javascript
复制
# mount -o ro /dev/gcw/root /mnt/lvroot

我会犯错。Dmesg说:

代码语言:javascript
复制
[ 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 }

我的问题是:当我试图挂载这个设备时,操作系统为什么要写这个设备(命令“写多个分机”是用来写的)?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2015-04-18 22:08:12

有些文件系统的只读挂载会触发写操作。我知道的一个例子是日志文件系统,如果您安装的文件系统没有干净地卸载,就会触发日志的重放,甚至是只读挂载。

在Linux上使用ext3或ext4时,传递noload挂载选项:

代码语言:javascript
复制
mount -o ro,noload /dev/gcw/root /mnt/lvroot

不幸的是,这会导致日志根本不被重播,甚至在内存中也不会被重放,这可能会使文件系统显示不一致的数据。

我认为可以创建一个虚拟块设备,这样可以写入内存层,但是原始内容是由磁盘上的块设备提供的。有关接近您的场景的示例,请参见GNU/Linux:覆盖块设备/可堆栈块设备。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/197021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档