如何在终端中将硬盘挂载为只读模式

如何通过命令行将硬盘挂载为只读模式?我不需要链接到手册页,我需要的是如果以下条件成立时需要输入的确切命令:
- 需要挂载的磁盘位于 /dev/sda - 它是2TB的容量 - 非常重要的是,我必须将其挂载为只读模式,而不是可读写模式。 - 我是通过Ubuntu的Live CD进行操作,所以没有修改fstab或任何其他文件的权限。
4个回答

你不需要挂载 /dev/sda,那是整个磁盘的引用。你需要挂载 /dev/sda1 或者其他你想要的分区。

创建一个挂载点,可以随意命名。

sudo mkdir /media/2tb

sudo mount -o ro /dev/sda1 /media/2tb

当你完成时,应该卸载磁盘。
sudo umount /media/2tb

查看 man mount 或 https://help.ubuntu.com/community/Fstab


当将文件系统挂载为只读时,可能会遇到一些问题。 系统可能仍然尝试写入设备并失败。
因此,可以使用“noload”标志来通知系统磁盘已被阻止。
我找到的最佳解决方案是:
sudo mount -o ro,noload /dev/sda1 /media/2tb

mount(8)的手册如下解释了这些选项:

-r--read-only

将文件系统以只读方式挂载。一个同义词是-o ro

请注意,根据文件系统类型、状态和内核行为,系统仍然可能对设备进行写入。例如,如果文件系统处于脏状态,Ext3或ext4将重放其日志。为了防止此类写访问,您可以使用ro,noload挂载选项来挂载ext3或ext4文件系统,或者将块设备设置为只读模式,请参阅命令blockdev(8)

[...]

norecovery/noload

在挂载时不加载日志。请注意,如果文件系统没有正常卸载,跳过日志重放将导致文件系统包含不一致性,可能会引发各种问题。

欲了解更多信息,请参阅SANS数字取证和事件响应博客中关于如何挂载脏EXT4文件系统的详细说明“How to Mount Dirty EXT4 File Systems”


是的,当我尝试挂载一个来自旧的RAID 1阵列的单个磁盘时,我只能使用noload选项来挂载它 - sudo mount -o ro,noload /dev/md0 /mnt/disk1。一旦我用sudo mdadm --assemble --readonly /dev/md0 /dev/sda重新构建了阵列,就可以挂载了。 - ruslaniv

我正在将一个连接到Ubuntu 12.04的USB驱动器插入,并且系统会自动挂载它。在终端中,如果我只输入mount,它会显示当前信息。我想将其重新挂载为只读。
man mount(8)推断出来:
sudo mount -o remount,ro /dev/sdb4 /media/HP_TOOLS

似乎运行得很顺利。必须为每个自动挂载的分区都执行此操作。

步骤1:将硬盘连接到机器上后,输入以下命令以查看它显示的硬盘信息。
sudo fdisk -l

它将显示磁盘为/dev/sda/dev/sdb,带有分区表。

Disk /dev/sdb: 7.5 GiB, 8053063680 bytes, 15728640 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
Disklabel type: dos

Disk identifier: 0x0e0e8e70

    Device     Boot   Start     End Sectors  Size Id Type
    /dev/sdb1  *          0 2902111 2902112  1.4G  0 Empty
    /dev/sdb2       2888004 2892739    4736  2.3M ef EFI (FAT-12/16/32)

第二步:执行下面的命令以查看它被挂载在哪里。例如,
$ sudo df -HT

Filesystem                  Type      Size  Used Avail Use% Mounted on
udev                        devtmpfs  4.2G     0  4.2G   0% /dev 
tmpfs                       tmpfs     829M   10M  819M   2% /run
/dev/mapper/ubuntu--vg-root ext4      484G  149G  311G  33% /
tmpfs                       tmpfs     4.2G   20M  4.2G   1% /dev/shm
tmpfs                       tmpfs     5.3M  4.1k  5.3M   1% /run/lock
tmpfs                       tmpfs     4.2G     0  4.2G   0% /sys/fs/cgroup
/dev/sda1                   ext2      495M  111M  359M  24% /boot
/dev/sdb1                   iso9660   1.5G  1.5G     0 100% /media/username/Ubuntu

第三步:最后执行以下命令,将其重新挂载为只读(ro)。
sudo mount -o remount,ro /dev/sdb1   /media/username/Ubuntu

这仅适用于桌面版本,在桌面版本中,/media/username/... 是用户的挂载点,用于USB驱动器挂载等。如果您不使用图形界面,则第2步将对您无效。 - Thomas Ward