my9823 发表于 2020-10-30 20:15:29

关于使用cpio for windows打包memdisk的注意事项。

本帖最后由 my9823 于 2020-10-30 20:19 编辑

在使用cpio for windows打包memdisk时需要将路径列表的\全部替换成/,否则生成的memdisk里的文件一个也识别不了!这个是在打包w大的fm.loop时发现的。切记!!!!

wintoflash 发表于 2020-10-30 21:02:59

建议直接WSL或者Linux。Windows下破事特别多。
我记得 find 生成的列表不需要转换。

my9823 发表于 2020-10-30 21:23:21

W大,其实我只想看看gnuwin的程序能不能在windows下build你的grub2文件管理器,最后发现除了mtools没有,生成iso的程序也没有,其他好像都能找到替代程序。

wintoflash 发表于 2020-10-30 21:36:49

my9823 发表于 2020-10-30 21:23
W大,其实我只想看看gnuwin的程序能不能在windows下build你的grub2文件管理器,最后发现除了mtools没有,生 ...

在windows下就算生成了也是有问题的。因为我用了符号链接。

my9823 发表于 2020-10-30 21:39:27

尽在发现有个不错的编辑器sed。例如要打包e:\123\boot目录,用dir/b/s生成列表会包含boot目录文件的完整路径,这是我们打包不愿看到的,可以先cd到123目录,运行dir/b/s boot|sed.exe -e {s/^.*123\\//g;s/\\/\//g}|cpio.exe -o -H newc >memdisk.cpio

my9823 发表于 2020-10-30 21:48:59

wintoflash 发表于 2020-10-30 21:36
在windows下就算生成了也是有问题的。因为我用了符号链接。

不怕老大笑话,我是一边百度那些shell命令,一边手动生成的。谁让我对批处理看不懂呢!

wintoflash 发表于 2020-10-30 21:49:08

为啥不用find ./boot

hilsonma 发表于 2020-10-30 21:50:37

my9823 发表于 2020-10-30 21:39
尽在发现有个不错的编辑器sed。例如要打包e:\123\boot目录,用dir/b/s生成列表会包含boot目录文件的完整路 ...

我是这样做的:
set bin=%~dp0bin\
set dir=%1
if %1a==a set dir=build
pushd %dir%
%bin%find boot | %bin%cpio -o -H newc | %bin%gzip -9 > memdisk.cpio.gz

wintoflash 发表于 2020-10-30 21:51:26

这个是以前用的脚本。现在要改改。
https://github.com/a1ive/grub2-filemanager/blob/lua/build.bat

my9823 发表于 2020-10-30 21:52:52

我是在windows下生成,其实台式机的bug10中有wsl,我再学习sed for windows的用法,贵在实践嘛!

my9823 发表于 2020-10-30 21:53:52

现在发现sed只用了九牛一毛,越发感觉自己像个文盲了,哈哈!

青青草 发表于 2020-10-31 23:29:59

my9823 发表于 2020-10-30 21:39
尽在发现有个不错的编辑器sed。例如要打包e:\123\boot目录,用dir/b/s生成列表会包含boot目录文件的完整路 ...

我是这样做的:
cd out
   find ./boot -print|cpio -o -H newc > ./memdisk.cpio.gz
   cd ..

青青草 发表于 2020-10-31 23:46:25

my9823 发表于 2020-10-30 21:39
尽在发现有个不错的编辑器sed。例如要打包e:\123\boot目录,用dir/b/s生成列表会包含boot目录文件的完整路 ...

如果要压缩得更小些,可以这样:
cd out
   find ./boot -print|cpio -o -H newc | gzip -9 > ./memdisk.cpio.gz
   cd ..

Zfming 发表于 2020-11-1 19:33:06

感谢分享!
页: [1]
查看完整版本: 关于使用cpio for windows打包memdisk的注意事项。