Zni*_*nik 23 linux mount readonly
这个问题暂时没有答案。
通常在读取或写入块设备出现问题后,内核决定将整个设备的标志切换为只读。在此之后,对位于该设备上的任何分区/文件系统的任何写入都会导致将其与设备状态一起切换为只读,因为任何写入都是不可能的。
来自 dmesg 的示例,这是在碎片整理获取来宾设备映像时使用 VirtualBox 在 windows8 上模拟来宾 linux:
[11903.002030] ata3.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x6 frozen
[11903.003179] ata3.00: failed command: READ FPDMA QUEUED
[11903.003364] ata3.00: cmd 60/08:00:a8:77:57/00:00:00:00:00/40 tag 0 ncq 4096 in
[11903.003385] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[11903.004074] ata3.00: status: { DRDY }
[11903.004248] ata3: hard resetting link
[11903.325703] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[11903.327097] ata3.00: configured for UDMA/133
[11903.328025] ata3.00: device reported invalid CHS sector 0
[11903.329664] ata3: EH complete
[11941.000472] ata3.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x6 frozen
[11941.000769] ata3.00: failed command: READ FPDMA QUEUED
[11941.000952] ata3.00: cmd 60/08:00:c8:77:57/00:00:00:00:00/40 tag 0 ncq 4096 in
[11941.000961] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[11941.001353] ata3.00: status: { DRDY }
[11941.001504] ata3: hard resetting link
[11941.320297] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[11941.321252] ata3.00: configured for UDMA/133
[11941.321379] ata3.00: device reported invalid CHS sector 0
[11941.321553] ata3: EH complete
[11980.001746] ata3.00: exception Emask 0x0 SAct 0x11fff SErr 0x0 action 0x6 frozen
[11980.002070] ata3.00: failed command: WRITE FPDMA QUEUED
[11980.002255] ata3.00: cmd 61/18:00:28:23:59/00:00:00:00:00/40 tag 0 ncq 12288 out
[11980.002265] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
-------------------
There are many other errors, like "lost write page", "Journal has aborted", "Buffer I/O error", "hard resetting link" and many others.
Run Code Online (Sandbox Code Playgroud)
在此之后,重新安装原因:
mount / -o remount,rw
mount: cannot remount block device /dev/sda1 read-write, is write-protected
Run Code Online (Sandbox Code Playgroud)
因为保持 rootfs sda1 的整个设备 sda 是只读的。
根据我的经验,这发生在以下情况中:
在这种情况下设备实际上是可读写的,但是 linux 内核在内部将此设备标记为只读并用作只读。这是用于防止损坏的内核功能,但它仅在 1. 点可用。
问题是。如何手动告诉内核,硬盘块设备运行正常?
没有这个,内核将设备作为只读服务,就像“CD-ROM”一样,没有其他命令可以正常工作,包括 mount/remount -o read-write 、 fsck 等。
无法使用的 ansvers,真正合格的垃圾邮件来自想要提供帮助但不了解问题性质的人:
- 尝试重新挂载为读写(不可能,设备是 RO)
- fsck 这个(用于什么?设备是 RO,无法修复)
- “我不知道”(首先有道理,但无法使用)
- '更换您的设备' *(通常是其他问题)
有人有上述问题的公式吗?可写块设备的切换标志,将其从只读状态恢复为读写状态?这个时候,似乎没有人知道怎么做。
这是一些解决方法,但通常是半可用或不可用的:
在点 1. 和 2. 我们告诉内核我们完全断开设备并再次连接到它。内核认识到这是加入新的正常运行的设备。我们可以使用 USB 设备和瞬间断电来模拟这一点。第 3 点是最后的机会,通常有效。但是为什么我们要重新开始呢?不幸的是,我们丢失了所有日志更新和脏缓冲区。
请注意,在相同的情况下,我对 Windows(桌面和服务器)没有任何问题。
小智 7
就像 Jose Luis Martin 建议使用 blockdev,我的 2cent 是做一个 remount rw 和 forcefsck
(假设 sda 是您的磁盘)
blockdev --setrw /dev/sda
mount /dev/sda -o remount,rw
touch /forcefsck
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
125553 次 |
最近记录: |