参考更优雅的(不拆硬盘)拯救死翘翘了的WD MyCloud(Ubuntu 17.10)配置编译出来的镜像中缺少mkfs.ext3
,mkfs.ext4
,无法创建GPT
分区,我们在此介绍一下如何增加mkfs.ext3
,mkfs.ext4
的功能。
首先参考Ubuntu 17.10上使用crosstool-ng-1.23.0建立WD MyCloud修复工具编译环境(uClibc)创建我们需要的编译工具。
接着参考更优雅的(不拆硬盘)拯救死翘翘了的WD MyCloud(Ubuntu 17.10)配置编译出启动镜像。
具体编译过程如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
$ cd ~ $ wget https://nchc.dl.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.43.7/e2fsprogs-1.43.7.tar.gz $ tar -zxvf e2fsprogs-1.43.7.tar.gz $ cd e2fsprogs-1.43.7 $ ./configure --host=arm-unknown-linux-uclibcgnueabihf --prefix=`pwd`/e2fsprogs_arm/ --disable-nls $ make $ make install $ cp ~/e2fsprogs-1.43.7/e2fsprogs_arm/sbin/mkfs.ext4 ~/mycloud/extrafiles/sbin/mkfs.ext4 $ cp ~/e2fsprogs-1.43.7/e2fsprogs_arm/sbin/mkfs.ext3 ~/mycloud/extrafiles/sbin/mkfs.ext3 #可以简单的把整个sysroot直接拷贝过来,但是无用文件太多,导致最后的文件太大了,因此我们只提取我们自己需要的文件出来 $ cp ~/x-tools/arm-unknown-linux-uclibcgnueabihf/arm-unknown-linux-uclibcgnueabihf/sysroot/lib/ld-uClibc* ~/mycloud/extrafiles/lib/ $ cp ~/x-tools/arm-unknown-linux-uclibcgnueabihf/arm-unknown-linux-uclibcgnueabihf/sysroot/lib/libc.so* ~/mycloud/extrafiles/lib/ $ cp ~/x-tools/arm-unknown-linux-uclibcgnueabihf/arm-unknown-linux-uclibcgnueabihf/sysroot/lib/libuClibc-* ~/mycloud/extrafiles/lib/ $ cp ~/x-tools/arm-unknown-linux-uclibcgnueabihf/arm-unknown-linux-uclibcgnueabihf/sysroot/usr/lib/libc.so ~/mycloud/extrafiles/usr/lib/libc.so #打包成压缩包,稍后我们的脚本会在找到这个压缩包后,打包进入镜像 $ cd ~/mycloud/extrafiles $ tar -cvzf extrafiles.tar.gz * $ mv extrafiles.tar.gz ../ |
重新打包uImage
镜像
1 2 3 |
$ cd ~/mycloud $ ./build-sys.sh |
如果e2fsprogs-1.43.7
的源代码不能下载,可从本站下载一份代码拷贝。点击这里下载。