参考更优雅的(不拆硬盘)拯救死翘翘了的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)配置编译出启动镜像。
具体编译过程如下:
$ 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
镜像
$ cd ~/mycloud $ ./build-sys.sh
如果e2fsprogs-1.43.7
的源代码不能下载,可从本站下载一份代码拷贝。点击这里下载。