之前一直有折腾ChromeOS,一位叫hexxeh的朋友一直有提供nightly build的镜像,所以免去了自己编译的烦恼。下载下来后,我打算修改一些东西后,再写入到U盘上,因为ChromeOS的映像文件是带有GPT分区的镜像,所以不能直接mount,需要在mount的时候的提供offset参数,即提供需要挂载的这个分区是从哪里开始的。像这样:
# sudo mount -o offset=xxx xxx.img /MOUNT/TO/DIR/
那么,如何得到这个offset的参数呢?我们可以用fdisk等工具来列出相关信息得到。不过,还有一个更NB的工具叫parted,一般可以在源里面找到。
首先,用parted列出相关信息:
parted ChromeOS-Vanilla-0.16.1092.2011_09_27_1647-r1643c060.img GNU Parted 3.0 Using /srv/ChromeOS-Vanilla-0.16.1092.2011_09_27_1647-r1643c060.img Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit Unit? [compact]? B (parted) p Model: (file) Disk /srv/ChromeOS-Vanilla-0.16.1092.2011_09_27_1647-r1643c060.img: 2051032576B Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 11 32768B 8421375B 8388608B RWFW 6 8421376B 8421887B 512B KERN-C 7 8421888B 8422399B 512B ROOT-C 9 8422400B 8422911B 512B reserved 10 8422912B 8423423B 512B reserved 2 10485760B 27262975B 16777216B KERN-A 3 27262976B 926941183B 899678208B ext2 ROOT-A 1 926941184B 2000683007B 1073741824B ext3 STATE 8 2000683008B 2017460223B 16777216B OEM 12 2017460224B 2034237439B 16777216B fat16 EFI-SYSTEM boot 4 2034237440B 2051014655B 16777216B KERN-B 5 2051014656B 2051015167B 512B ROOT-B (parted)
就这样得到各分区的信息了,如果想要挂载ROOT-A分区的话,27262976就是我们要的offset的参数值了。尝试一下:
# mount -o offset=27262976 ChromeOS-Vanilla.img /mnt/chromeos/ # cd /mnt/chromeos/
好了,就这么简单。