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

本文共 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://brjsa.baihongyu.com/

你可能感兴趣的文章
2003加入域提示“用户已存在”
查看>>
基于Hadoop数据仓库Hive1.2部署及使用
查看>>
利用shell计算find命令查出后的总文件大小
查看>>
性能之外:LSI 6Gb/s SAS RAID渠道先行
查看>>
DataGridView打印类
查看>>
【java】实体类中 Set<对象> 按照对象的某个字段对set排序
查看>>
Android Butterknife 8.4.0 使用方法总结
查看>>
横向滑动的HorizontalListView滑动指定位置的解决方法
查看>>
2013百度校招笔试真题以及解析(内存管理及其优缺点总结)
查看>>
自制DbHelper实现自动化数据库交互
查看>>
195.3. fonts 字体
查看>>
2014年度总结2015展望
查看>>
微信小程序之页面路由
查看>>
SAP Batch Management - Price Determination for Batches
查看>>
队列、资源与锁
查看>>
云计算大会第三批议题:金融、医疗等六大行业
查看>>
自动精简配置&重复数据删除核心技术点及其经济效应探究
查看>>
退伍军人建伪基站闯大祸:60万用户断网
查看>>
云计算促进健全现有IT管理体制
查看>>
大连银行应用Informatica数据脱敏方案
查看>>