博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Woobuntu woobuntu_build.sh hacking
阅读量:6212 次
发布时间:2019-06-21

本文共 4815 字,大约阅读时间需要 16 分钟。

#               Woobuntu woobuntu_build.sh hacking# 说明:#     有时候因为一些需求,我们需要定制一些系统,包括Ubuntu系统,于是# 我们自然需要知道如何去解包一个Ubuntu镜像,如何合成一个Ubuntu镜像。# 当然这也有助于后续对Linux整套系统的定制。##                                   2016-4-27 深圳 南山平山村 曾剑锋# ## 参考文档:#     1. linux 下如何制作 iso 格式的启动镜像#         https://www.v2ex.com/t/252789#     2. Ubuntu下制作iso文件的简单方法#         http://www.xuebuyuan.com/1292033.html#     3. Mount ISO Read/Write#         http://www.linuxquestions.org/questions/linux-software-2/mount-iso-read-write-329688/#     4. Woobuntu#         https://github.com/woolabs/Woobuntu#!/bin/bash#Author : woolabs team #Maintainer : lxj616@wooyunchroot_args="-c"# 帮助信息show_help() {echo " __    __            _                 _         ";echo "/ / /\ \ \___   ___ | |__  _   _ _ __ | |_ _   _ ";echo "\ \/  \/ / _ \ / _ \| '_ \| | | | '_ \| __| | | |";echo " \  /\  / (_) | (_) | |_) | |_| | | | | |_| |_| |";echo "  \/  \/ \___/ \___/|_.__/ \__,_|_| |_|\__|\__,_|";echo "                                                 ";echo "Usage:"echo "-f    The ubuntu base image you wanna use for woobuntu build"echo "-o    The output woobuntu image"echo "-x    Xubuntu optimization for zh_CN & pre-configuration"echo "-g        gnome-ubuntu optimization for zh_CN & pre-configuration"echo "-u        Ubuntu original optimization for zh_CN & pre-configuration"echo "-N        Pre-install NVIDIA driver (Use with causion)"echo "-V        Pre-install Virtualbox-guest additions (Use with causion)"echo ""echo "Example:"echo ""echo "./woobuntu_build.sh -f xubuntu-15.10-desktop-amd64.iso -o woobuntu-current-amd64.iso -x"}# 参数为0的时候显示帮助信息if [ $# = 0 ]then    show_help    exit 0fi# 解析命令行参数while getopts "h?f:o:xguNV" opt; do    case "$opt" in    h|\?)        show_help        exit 0        ;;    f)  input_iso=$OPTARG        ;;    o)  output_iso=$OPTARG        ;;    x)  chroot_args="$chroot_args -x"        ;;    g)  chroot_args="$chroot_args -g"        ;;    u)  chroot_args="$chroot_args -u"        ;;    N)  chroot_args="$chroot_args -N"        ;;    V)  chroot_args="$chroot_args -V"        ;;    esacdoneecho "You need following packages to continue:squashfs-tools dchroot"#Depends on dchroot to create iso# 依赖root权限生成iso文件sudo apt-get install squashfs-tools dchroot mkisofs -y#Create temp folder to mount origin iso# 创建temp文件夹用于挂载源iso文件mkdir /tmp/livecd#Mount origin iso to temp folder to extract squashfs file# 挂载源iso文件到/tmp/livecd目录sudo mount -o loop $input_iso /tmp/livecd#Create temp folder to store iso image files# 创建temp目录来存放iso镜像文件mkdir -p livecd/cd#Don't copy squashfs file as we will repack this file later# --exclude: 指定不需要拷贝的文件;# /casper/filesystem.squashfs文件使用后面合成的文件,所以这里可以忽略拷贝rsync --exclude=/casper/filesystem.squashfs -a /tmp/livecd/ livecd/cd#Create temp folder to mount squashfs file & copy everything out for modification# 创建temp文件夹,用于挂载squashfs文件,并且拷贝出所有的内容用于修改mkdir livecd/squashfs  livecd/custom#Need to load before use# 在使用squashfs工具之前,需要加载一下sudo modprobe squashfs#Mount the squash file# 挂载squash文件系统sudo mount -t squashfs -o loop /tmp/livecd/casper/filesystem.squashfs livecd/squashfs/#Copy everything out for modification(squashfs file itself is read-only)# 将squash文件系统内的文件全部拷贝出来,主要是由于squashfs是一个只读文件系统sudo cp -a livecd/squashfs/* livecd/custom#Enable network related configuration inside chroot env# 使能网络功能,因为后续要使用网络更新程序sudo cp /etc/resolv.conf /etc/hosts livecd/custom/etc/#Copy wooyun-firefox user-profile into chroot env# 拷贝wooyun-firefox user-profile到chroot目录,供后续使用sudo cp -r .mozilla livecd/custom/root#Drop the chroot install script inside# 拷贝woobuntu_chroot_build.sh文件到chroot目录sudo cp woobuntu_chroot_build.sh livecd/custom/root#Execute the install script inside chroot env# 执行chroot相关的脚本sudo chroot livecd/custom /bin/bash -x /root/woobuntu_chroot_build.sh $chroot_args#Everything should be done except re-check the mount pointssudo umount -lf livecd/custom/procsudo umount -lf livecd/custom/sys#Renew the manifestchmod +w livecd/cd/casper/filesystem.manifest#chmod +w livecd/cd/preseed/xubuntu.seed#cat > livecd/cd/preseed/xubuntu.seed <
livecd/cd/casper/filesystem.manifestsudo cp livecd/cd/casper/filesystem.manifest livecd/cd/casper/filesystem.manifest-desktop#Repack the squashfs file# 重新打包squashfs文件系统sudo mksquashfs livecd/custom livecd/cd/casper/filesystem.squashfs#Re-create the md5 file# 重新计算md5文件sudo rm livecd/cd/md5sum.txtsudo bash -c 'cd livecd/cd && find . -type f -exec md5sum {} +' > livecd/cd/md5sum.txt#Repack iso file# 重新生成iso文件cd livecd/cdsudo mkisofs -r -V "Woobuntu-Live" -b isolinux/isolinux.bin -c isolinux/boot.cat -cache-inodes -J -l -no-emul-boot -boot-load-size 4 -boot-info-table -o output.iso .mv output.iso ../../ cd ../../mv output.iso $output_iso#Umount and clean# 卸载相关内容sudo umount livecd/squashfs/sudo umount /tmp/livecd#sudo rm -fr livecd/echo "build finished"

 

转载地址:http://sbcja.baihongyu.com/

你可能感兴趣的文章
前后端分离实践
查看>>
基于nodejs环境用Phaser来制作一个html5游戏
查看>>
Python入门学习(一)
查看>>
交换两个数
查看>>
项目总结 20171226
查看>>
微信小程序实时通讯(websocket)问题
查看>>
docker基本操作
查看>>
程序中加载资源文件
查看>>
Nginx 配置学习笔记
查看>>
JavaScript继承模式
查看>>
后面有多少个零
查看>>
Vue.js非常重要之组件
查看>>
vue-数据获取的2中方式
查看>>
程序员必读: 摸清Hash表的脾性
查看>>
搞一搞laravel里api路由的 auth:api 和 api_token
查看>>
极致PCWeb性能 —— 同步加载vs异步加载
查看>>
2017-05-27 前端日报
查看>>
PostgreSQL升级方案
查看>>
Quartz 2 定时任务(三):异常与中断处理
查看>>
curl记录响应时间
查看>>