几天前,我们遇到了一个意外错误,我们的RedHat linux机器上的一个挂载驱动器变成了只读。该问题是由数据中心的网络中断引起的。
现在,我需要看看是否可以重现相同的行为,即在应用程序运行时,驱动器将被重新挂载为只读。
我试图重新挂载它是只读的,但这不起作用,因为有打开的文件(正在写入日志)。
如果我拥有对机器的root访问权限(但没有对虚拟机管理程序的访问权限),是否有办法临时将其设置为只读。
该卷是通过/etc/fstab装载的。以下是记录:
UUID=abfe2bbb-a8b6-4ae0-b8da-727cc788838f / ext4 defaults 1 1
UUID=8c828be6-bf54-4fe6-b68a-eec863d80133 /opt/sunapp ext4 rw 0 2下面是几个命令的输出,这些命令显示了有关我们挂载的驱动器的详细信息。我可以根据需要添加更多细节。
fdisk -l的输出
Disk /dev/vda: 268.4 GB, 268435456000 bytes, 524288000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0008ba5f
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 524287966 262142959+ 83 Linux
Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 byteslsblk命令的输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 80G 0 disk
└─vda1 253:1 0 80G 0 part /
vdb 253:16 0 250G 0 disk /opt/sunupblkid命令的输出:
/dev/vda1: UUID="abfe2bbb-a8b6-4ae0-b8da-727cc788838f" TYPE="ext4"
/dev/sr0: UUID="2017-11-13-13-33-07-00" LABEL="config-2" TYPE="iso9660"
/dev/vdb: UUID="8c828be6-bf54-4fe6-b68a-eec863d80133" TYPE="ext4" parted -l命令的输出:
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0
has been opened read-only.
Error: /dev/sr0: unrecognised disk label
Model: QEMU QEMU DVD-ROM (scsi)
Disk /dev/sr0: 461kB
Sector size (logical/physical): 2048B/2048B
Partition Table: unknown
Disk Flags:
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 268GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 268GB 268GB primary ext4 boot
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 42.9GB 42.9GB ext4发布于 2018-11-17 03:23:35
是的,你能做到。但是这里提出的方法可能会导致数据丢失,所以只用于测试。
假设您已经将/dev/vdb挂载为/opt/sunapp,请执行以下操作:
/dev/vdb的内容:losetup /dev/loop0 /dev/vdb
/dev/loop0而不是/dev/vdb:挂载/dev/loop0 /opt/sunapp -o rw,errors=remount-ro
/opt/sunapp设置为只读时,请使用以下命令:blockdev dev --setro /dev/vdb
在此之后,尝试写入/dev/loop0将导致I/O错误。一旦文件系统驱动程序检测到这一点,它就会将文件系统重新挂载为只读。
要恢复所有内容,您需要卸载/opt/sunapp,分离环路设备,并使/dev/vdb再次可写:
umount /opt/sunapp
losetup -d /dev/loop0
blockdev --setrw /dev/vdb发布于 2018-11-22 00:13:01
当我遇到磁盘损坏等问题时,我使用了ntfsfix。请看看这些命令,是否能解决问题。
sudo ntfsfix /dev/vda
sudo ntfsfix /dev/vdbhttps://stackoverflow.com/questions/53267157
复制相似问题