如何挂载ISO文件?

我在尝试挂载一个大ISO文件时遇到了麻烦。
dev@dev-OptiPlex-745:~$ sudo mount -o loop /home/dev/Hämtningar/matlab2011a_64.iso /cdrom
mount: warning: /cdrom seems to be mounted read-only.
dev@dev-OptiPlex-745:~$ 

你能告诉我应该怎么做吗?

14问题在哪里?你可以执行 ls /cdrom 吗?请注意,ISO文件在定义上是只读的,因此会有警告。 - Takkat
1请查看您的桌面或文件管理器,它可能已经作为磁盘挂载了。 - atenz
3在挂载时添加只读选项-r - ctrl-alt-delor
3关于“只读挂载”的警告是正常的!ISO文件总是以只读方式挂载的,无法修改它们。...(感谢下面的Anwar Shah) - steoiatsl
2可能是如何挂载ISO?的重复问题。 - Pablo Bianchi
15个回答

也许,与其安装额外的软件,你可以利用系统本身已有的功能来实现这一目的:
  1. 创建一个目录作为挂载位置:

    sudo mkdir /media/iso
    
  2. 将ISO文件挂载到目标目录:

    sudo mount -o loop path/to/iso/file/YOUR_ISO_FILE.ISO /media/iso
    
  3. 卸载ISO文件:

    sudo umount /media/iso
    


在您的桌面上会出现挂载的ISO。


1为什么我收到消息说“bash: /path/media/external drive/my.ISO: Permission denied”? - user47206
1无法工作 sudo mount -o loop smb://server/downloads/disk.iso /media/iso:没有此文件或目录 - waspinator
1@cipricus 看起来系统无法访问您的ISO文件。最简单的解决方法是先将ISO文件复制到本地目录中。 - chobok
1@waspinator 请先将ISO文件复制到本地目录。 - chobok
2@chobok 复制到本地目录可以解决问题,但我没有建立文件服务器以便每次想使用文件时都将其复制到桌面。在这个问题搞清楚之前,我现在又回到了Windows。 - waspinator
2@waspinator 如果你还没有这样做的话,你可以开一个新问题来解决你的具体问题。 - chobok
1@Subv3rsion,你的这种方法仍然会将挂载的磁盘设为只读。 - Amir
1@Subv3rsion,你写道:“在你的桌面上会出现已挂载的ISO文件。”实际上它并不在桌面上,而是在Nautilus的左侧窗格中。 - H2ONaCl
获取错误:“必须指定文件系统类型” - Kalamalka Kid
2@waspinator 你可以先挂载你的Samba共享,然后你就可以将其用作本地文件系统(就当前问题而言)。 - wk.

尝试使用图形用户界面(GUI)安装它。

使用文件管理器导航到*.iso文件,然后右键点击 -> 以存档挂载器打开

或者您可以安装Furius ISO Mount。它可在Ubuntu软件中心中获取:

sudo apt-get install furiusisomount

这里有一些截图:

Furius ISO Mount - Interface

Ubuntu 12.04 mounted ISO

Furius ISO Mount - 项目页面


1我认为在ISO文件是UDF镜像时添加这种情况非常重要。 - Ángel Araya
13通过“archive mounter”进行挂载并不是一个很好的方法,如果你想要从ISO文件中运行文件的话。(它只适用于查看内容)。因为,我们无法通过“Archive mounter”挂载的ISO文件来执行文件。 - Anwar
3为了挂载一个ISO镜像,安装一个全新的软件? - pylover
1⁺¹因为不需要root权限。 - Hi-Angel

我发现在Ubuntu 14.04中处理ISO文件最简单和最快的方法是右键点击ISO文件,选择"Disk Image Mounter",然后直接进入新打开的目录。

如果您尚未安装,您可以在终端中使用以下命令进行安装:
sudo apt-get install gnome-disk-utility

我刚刚意识到这个也存在!我是一个程序员,喜欢命令行,但这真的是更合适、用户友好、方便的方式。 - Shahbaz
1仍然在22.04版本中运行。 - undefined

我非常喜欢Furius ISO Mount,它是一个简单的应用程序,用于挂载ISO、IMG、BIN、MDF和NG文件。
- 自动挂载ISO、IMG、BIN、MDF和NRG镜像文件。 - 在您的主目录中自动创建挂载点。 - 自动卸载镜像文件。 - 自动删除挂载目录,将您的主目录恢复到之前的状态。 - 自动保存最近挂载的10个镜像的历史记录。 - 挂载多个镜像。 - 将ISO和IMG文件刻录到光盘。 - 生成Md5和SHA1校验和。 - 自动检索以前未挂载的镜像。 - 自动生成所有手动挂载和卸载镜像所需的命令的日志文件。 - 可本地化(目前提供捷克语、丹麦语、法语、匈牙利语、意大利语、德语、波兰语、斯洛文尼亚语、西班牙语和土耳其语)。

enter image description here

如果来自77个评分的5颗星足以说服你打开Ubuntu软件管理器并搜索Furius ISO Mount,那就去试试吧。
参考链接:
[Furius ISO Mount - 项目页面](link1)

我假设你的iso文件名是matlab2011a_64.iso,位于文件夹/home/dev/Hämtningar/中。
你可以这样做来挂载iso文件到/cdrom文件夹,或者创建另一个文件夹并将iso文件挂载到其中。我将在你的主目录下创建一个单独的文件夹。打开终端执行以下操作。
  1. 创建挂载点

    mkdir ~/mount-point
    
  2. 使用以下命令进行挂载

    sudo mount ~/dev/Hämtningar/matlab1011a_64.iso  ~/mount-point -o loop
    

    这将把ISO文件挂载到新创建的名为mount-point的文件夹中。

    还要注意,你会收到一个警告信息,类似于mount: warning: /home/dev/mount-point seems to be mounted read-only,这是因为ISO文件总是以只读方式挂载。你无法向ISO文件写入内容。你应该忽略这个消息并继续操作。


5为什么你不能写入ISO文件呢?你不应该被允许进行修改,然后重新打包.iso文件吗? - landroni

你可以很容易地使用命令行工具挂载ISO文件:
首先,使用以下命令创建一个目录来挂载ISO文件:
sudo mkdir /media/myisos

通常情况下,启用iso类型文件系统的循环模块会自动添加,因此您不需要运行“sudo modprobe loop”命令。
现在,通过将“mount”指向iso文件的位置来挂载它。
sudo mount ~/location/of/iso /media/myisos -o loop

它会警告您ISO被以只读方式挂载,但这是正确的。

您稍后可以使用以下命令卸载它

sudo umount ~/location/of/iso /media/myisos

1据我所知,“loop”模块会自动加载。此外,在挂载ISO文件时不再需要“-t iso9660”。 - Anwar
我知道这个,只是一个备注。 - Anwar
1@Anwar 谢谢 Anwar- 我同意这是有用的,记下来。 - user76204

有一个内置的GUI工具,尽管菜单界面有点混乱,看起来像是窗口标题;)
从您的启动器中运行“Disks”。然后从“Disks”菜单中选择“附加磁盘映像...”: Disks Utility

你可以使用类似于"furiusisomount"的图形界面工具ISO Master。简单来说:
sudo apt-get install isomaster

然后使用您喜欢的文件管理器打开您的*.iso文件,并使用ISO Master进行操作。
从网站上获取的信息:

使用ISO Master可以:

  • 创建或自定义CD/DVD映像
  • 制作可启动的CD/DVD
基本上,它允许您向ISO映像中添加或删除文件,然后保存更改。

如果您想要获取从挂载的ISO复制文件的读写权限,而又不想安装其他软件。只需进入终端shell,导航到您挂载ISO的位置,例如:
sudo mount -o loop /home/username/whatever.iso /mnt/iso

然后将整个挂载的目录复制到其他地方:
sudo cp -rf /mnt/iso /home/username/MyMountedISO

你也可以使用
cd /mnt/iso

下一步查看内容
ls

然后:
sudo cp install.img /home/username/MyMountedISO

使用udisksctl,它是系统的一部分。它在用户空间中挂载您的 ISO 文件,并且不需要以超级用户身份运行。您的文件将被挂载到/media/$USER/,具有适当的权限。

挂载 ISO

udisksctl loop-setup -f my.iso
udisksctl会告诉你它正在使用哪个循环设备。
udisksctl mount -b /dev/loopX

其中X是您的ISO映射到的loop设备的编号

卸载ISO文件

udisksctl unmount -b /dev/loopX
udisksctl loop-delete -b /dev/loopX

其中X是您的ISO映射到的循环设备号。如果您忘记了,可以通过以下方法找到:

losetup