# 封装定制的Kali Live ISO
## 打造专属的Kali ISO – 简介
封装定制的Kali ISO很简单,很有趣,很有意义.你可以用Debian的[live-build](http://live.debian.net/devel/live-build/ "Debian Live Build")脚本对Kali ISO进行全面的配置.这些脚本以一系列配置文件的方式对镜像进行全面的自动定制,让任何人都可以轻易地就能打造一个Live系统镜像.官方发布的Kali ISO也采用了这些脚本.
### 前提
最理想的是在预装Kali的环境里定制你的Kali ISO.如果不是这样,请务必使用最新版本的live-build脚本(3.x分支的脚本可用于Debian wheezy).
### 准备开始
首先我们要用以下命令搭建好定制Kali ISO的环境:
```
apt-get install git live-build cdebootstrap kali-archive-keyring
git clone git://git.kali.org/live-build-config.git
cd live-build-config
lb config
```
### 封装Kali ISO的配置(可选)
**config**目录里包含了定制ISO的各种重要的自定义选项,这些选项在Debian的[live build 3.x](http://live.debian.net/manual-3.x/html/live-manual/index.en.html "Debian Live Build")页面有文档说明.然而如果你没有耐心,请特别注意以下的配置文件:
**config/package-lists/kali.list.chroot** – 包含要安装在Kali ISO里的软件包的列表.你可以指定移除已经安装的软件包.也可以切换你的Kali ISO的桌面环境(KDE,Gnome,XFCE,LXDE等).
**hooks/** – hooks 目录允许我们在不同阶段调用脚本封装定制Kali Live ISO.更多关于hooks的信息,参考[live build 手册](http://live.debian.net/manual/3.x/html/live-manual/index.en.html "Debian Live Build Manual").举个例子,Kali是这样添加取证模式的引导菜单的:
```
$ cat config/hooks/forensic-menu.binary
#!/bin/sh
cat >>binary/isolinux/live.cfg <
label live-forensic
menu label ^Live (forensic mode)
linux /live/vmlinuz
initrd /live/initrd.img
append boot=live noconfig username=root hostname=kali noswap noautomount
END
```
### 封装ISO
在封装ISO之前,可以指定需要的架构,选择amd64或者i386.还要注意”lb build”需要root权限.如果你不指定架构,live build将根据你现在使用的架构来封装ISO.
如果你想在在32位系统封装64位的ISO,务必打开多架构支持:
```
dpkg --add-architecture amd64
apt-get update
```
配置live-build封装64位或者32位ISO:
```
lb config --architecture amd64 # for 64 bit
# ...or...
lb config --architecture i386 # for 32 bit
lb build
```
最后一个命令需要一些时间,因为它下载所有需要的软件包然后封装ISO.可以先去喝杯咖啡.
### 为今后封装ISO提速
如果你打算经常定制ISO,你可以把kali的软件包缓存在本地便于今后的封装.最简单的就是安装**apt-cacher-ng**,然后在每次打包时配置http_proxy环境变量.
```
apt-get install apt-cacher-ng
/etc/init.d/apt-cacher-ng start
export http_proxy=http://localhost:3142/
.... # setup and configure your live build
lb config --apt-http-proxy http://127.0.0.1:3142/
lb build
```