如何在Ubuntu下挂载.img文件?


11

我刚刚下载了Debian和Arch Linux文件,并且想在烧入SD卡之前进行安装。如何安装img?

我尝试挂载,但出现以下错误:

sudo mount -o loop archlinuxarm-13-06-2012.img /mnt/
mount: you must specify the filesystem type

那是yaffs2吗?据我所知,如何安装yaffs2,据我所知在Ubuntu 12.04中尚不支持yaffs2,我找不到任何软件包。

Answers:


12

艰难的道路

阅读有关在刷新映像之前是否可以更新,升级和安装软件的其他答案

您需要计算要挂载的文件系统的偏移量。

简单但实验性的方式

考虑使用我的新实用程序piimg。只需构建并运行

$ sudo ./piimg mount archlinuxarm-13-06-2012.img /mnt

注意:此功能尚未经过全面测试。

怎么piimg办?

piimg通过分析图像并设置正确的回路设备和底座来执行一系列的底座。它/先安装,然后/boot绑定/dev(递归),绑定/sys并创建/proc。您需要执行相反的操作来卸载,但是umount很快应该有一个子命令。

免责声明一:Alex Chamberlain是的主要开发人员piimg。因此,piimg相对于其他方法,我可能会偏向使用。


@iungi您使用了哪种方法?
亚历克斯·张伯伦

感谢您所做的宝贵工作。我只是指出,必须安装软件包libparted0-dev才能正确构建。我将使用您的实用程序,并指出潜在的问题。只需注意一点:在/ usr / local / sbin中安装为root保留的程序似乎更合乎逻辑!最好的祝福。

<br/>另外请注意,您的命令行中存在一个疏忽:<br/> $ sudo ./piimg mount sd.img / mnt

@MarkBooth我已经piimg很长时间没有工作了。我猜想该文档需要更新,而不是这个答案(因为它没有告诉您如何构建它!)
Alex Chamberlain 2013年

@MarkBooth哦,有2个。是的,它需要更新。完成
Alex Chamberlain 2013年

1

问题在于该映像是包括分区表的完整磁盘映像,而不是单个分区的映像。

有两种解决方法,一种方法是计算偏移量并将其用于安装(有关更多详细信息,请参见alex的答案)。

如果您具有最新的内核和最新版本的Lostup,则另一种方法是使用-P选项来丢失例如

losttup -P -f <文件名>

这将创建一系列设备节点。主/ dev / loop <number>节点,以及每个分区的节点/ dev / loop <number> p <number>。然后,您可以像其他分区设备一样使用该设备。

完成后,您可以通过以下方式删除环回设备:

losttup -d / dev / loop <数字>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.