我有一个 SSD 磁盘,ext4
上面有一个文件系统:
$ lsblk -f /dev/sdc
NAME FSTYPE LABEL UUID MOUNTPOINT
sdc ext4 142b28fd-c886-4182-892d-67fdc34b522a
我正在尝试安装它,但失败了:
$ sudo mkdir /mnt/data
$ sudo mount /dev/sdc /mnt/data
mount: /mnt/data: cannot mount /dev/sdc read-only.
- 错误信息是什么意思?
- 如何诊断并解决问题?
添加与以下答案相关的其他信息:
磁盘上只有一个分区。
lsblk
下面是启动盘的执行结果:
$ lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
├─sda1 8:1 0 9.9G 0 part /
├─sda14 8:14 0 4M 0 part
└─sda15 8:15 0 106M 0 part /boot/efi
lsblk
这是对相关磁盘执行的结果:
$ lsblk /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc 8:32 0 2G 1 disk
答案1
我的 USB 拇指驱动器也遇到了类似的问题,这是由于 ext4 日志恢复不起作用。dmesg
证实了这一点:
[1455125.992721] EXT4-fs (sdh1): INFO: recovery required on readonly filesystem
[1455125.992725] EXT4-fs (sdh1): write access unavailable, cannot proceed (try mounting with noload)
正如它所建议的,使用 noload 进行安装是有效的:
sudo mount -o ro,noload /dev/sdh1 /mnt/drive
然后我就可以备份内容:
sudo rsync -av /mnt/drive /data/tmp/
然后使用fdisk
删除并重新创建分区,然后使用 . 创建一个新的文件系统mkfs.ext4
。
答案2
mount: /mnt/data: cannot mount /dev/sdc read-only.
问题可能是ext4
设备上的文件系统需要日志恢复,这本质上是写入操作。您可能会dmesg
在尝试安装后使用该命令获取更多信息。
但我真的不明白你的命令如何
sudo mount /dev/sdc /mnt/data
变成了只读安装的请求。您是否有/etc/fstab
针对该文件系统的特定选项?或者您是否有mount
在 root 环境中命名的自定义脚本或别名?
不过,如果该dmesg
命令没有提供任何进一步的信息,您可以尝试显式请求读写安装:
sudo mount -o rw /dev/sdc /mnt/data
或者您可以尝试先对其运行文件系统检查:
sudo fsck.ext4 -C0 /dev/sdc
答案3
如果我没看错的话,您正在尝试安装非分区。这可能是一个简单的拼写错误,您应该使用“/dev/sda1”或“/dev/sda2”等,而不仅仅是“sda”
如果不是这种情况,则需要使用分区工具(例如 fdisk 或 gdisk)(或基于 GUI 的工具(例如 gparted))来创建分区表和分区。然后使用“mkfs”在该分区中安装文件系统。
答案4
对我来说,添加到 /etc/fstab 中的以下行确实有效(在 Oracle 云中)。您应该更改 UID,通过 获得正确的 uid sudo blkid
。更新 /etc/fstab 后更新挂载sudo mount -a
UID=86e62531-ad0b-4552-9df1-f14b73baf2a5 /data ext4 ro,noload,nofail 0 1