制作initrd(6):重做Ubuntu安装盘

    接上篇 制作initrd(5):解剖Ubuntu安装盘 。上一篇主要提到了分解Ubuntu安装盘,这篇是解剖的反过程--合成安装盘iso,内容相对比较少。

    如果仅仅把安装盘拆开看看然后合回去,作为学习目的还可以,但是真的有点浪费篇幅了。其实,拆开的光盘还能塞点东西进去,就是所谓的定制光盘。笔者近期就遇到要把公司的一个客户端软件加密进Ubuntu光盘filesystem.squashfs镜像中,为了兼容amd/intel显卡,需要在initrd中判断系统显卡类型,因此加了个lshwex的程序(扩展Ubuntu lshw命令)。然后由initrd/casper脚本挂载2种不同显卡驱动的filesystem.squashfs。待filesystem.squashfs挂载完毕,需要解密公司的客户端程序。这里笔者写了一个简单的脚本,解决可执行程序依赖库

#!/bin/bash

dep_list=`ldd $1`|awk '{print $3;}'|grep -v "("`

for list_entry in $dep_list;
do
	echo $list_entry
	if [ -f $list_entry ]
	then
		cp -f $list_entry $2
	fi
done

脚本接收2个参数,arg1是可执行程序路径 arg2是依赖库拷贝的目标位置。当然是从公版ubuntu发行版拷到定制版ubuntu中。

    一切做完后,当然是要烧写iso,不要以为直接压缩一下就好,那样会丢失isolinux的引导信息。下面是同时支持UEFI/CSM启动模式的打包iso命令:

cd path_to_dir_of_customed_iso
sudo mkisofs -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -r -J -o ../xxx.iso .
注意xxx.iso后面还有空格和一点

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值