1回答

1收藏

[原创] 制作树莓派的 Archlinux 镜像

Raspberry Pi Raspberry Pi 4404 人阅读 | 1 人回复 | 2015-12-29

本帖最后由 ETY001 于 2015-12-29 09:00 编辑

Arch 官网好像已经不再提供现成的镜像了,需要自己手动制作镜像。。。点击这里查看官方提供的制作方法,下载地址


由于我用的是OSX,而官方给的教程是在Linux下的操作,于是我就开我的虚拟机操作,但是发现读卡器在虚拟机里的识别有些问题,于是相当要自己做个镜像包。


第一步 建立空的镜像文件

dd if=/dev/zero of=new.img bs=2M count=512

因为ArchLinux本身不大,所以建立个1G的镜像文件足够了。


第二步 用fdisk对new.img进行分区操作

fdisk new.img

  • 输入n进入建立新分区
  • 输入p,选择分区为主分区
  • 回车,默认1
  • 回车,默认开始扇区位置
  • 输入 +100M (引导分区100M足够)

这时,第一个分区建立完毕,回到主目录,输入t,再输入c,设置引导分区类型为W95 FAT32(LBA)。(*刚开始烧了4遍,都引导树莓派失败了,就是因为忘记这一步操作了。。*)


  • 再输入n进入建立新分区
  • 输入p,选择分区为主分区
  • 回车,默认2
  • 回车,默认开始扇区位置
  • 回车,默认使用剩下所有空间。

这样两个分区搞定,输入w,保存分区表,并退出fdisk。


第三步 挂载new.img成为设备

kpartx -av new.img

之前的两步都是我会的,但是第三步,我着实的折腾了一番,只是知道可以把img挂成设备用,但是不知道怎么搞。


从网上搜索的结果,第一个搜索的是用losetup命令,但是出现的问题是,losetup是可以把镜像文件挂载为/dev/loop0,但是里面的分区一直在/dev中找不到。


后来搜索 如何挂载虚拟机镜像 这个关键词,才找到了这条命令。这条命令执行后,会有以下设备出现

  • /dev/loop0
  • /dev/mapper/loop0p1
  • /dev/mapper/loop0p2

第四步 格式化,挂载,并写入文件

mkfs.vfat /dev/mapper/loop0p1
mkdir /mnt/boot
mount /dev/mapper/loop0p1 /mnt/boot
mkfs.ext4 /dev/mapper/loop0p2
mkdir /mnt/root
mount /dev/mapper/loop0p2 /mnt/root
#去官网下载ARMv6 Raspberry Pi这个包
#下载后的文件是ArchLinuxARM-rpi-latest.tar.gz
#bsdtar 可能需要自己安装,yum install bsdtar即可
bsdtar -xpf ArchLinuxARM-rpi-latest.tar.gz -C /mnt/root/
#强制缓存写入
sync
#引导文件
mv /mnt/root/boot/* /mnt/boot/
#卸载
umount /mnt/boot/ /mnt/root/
kpartx -d new.img

这样一个新镜像就做好了,把new.img从虚拟机传出来,用dd直接写入SD卡,成功启动树莓派!


附带两个国内的ArchLinux ARM 的源:

#中科大
Server = http://mirrors.ustc.edu.cn/archlinuxarm/armv6h/$repo
#清华
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/armv6h/$repo

参考文章:Mounting a KVM disk image without KVM

转载自:http://www.domyself.me/2015/01/23/make-image-of-raspberry-pi.html

分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

yanhaijian

发表于 2016-1-6 16:02:37 | 只看该作者

树莓派现在资料都很全了。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条