文档章节

定制 Kali Linux Live ISO

R
 ReJaVu
发布于 2014/04/30 19:49
字数 1249
阅读 5514
收藏 20

准备环境

注:更简便的方法请参考此文:定制 Kali Linux Live USB 的另一种方法

Kali Linux 自带了许多实用工具,将 ISO 刻录到U盘上做成的 Live USB 可以用在许多场合,比如无盘系统、公共电脑或者别人的电脑等。重启之后 Live 系统上的改动不会保存,并且 Live 磁盘空间比较小,不能临时装备过大的软件。所以定制自己的 Live 系统就很有必要了。本文讲述的是基于原有的 Live 文件系统定制,准备环境如下:

	Kali Linux 镜像:kali-linux-1.0.6-i386.iso
	U盘一只:大于4G,并格式化为 ext4 文件系统
	制作环境:Kali Linux 

定制

定制的基本思路就是解压原 ISO 镜像的 filesystem.squashfs,chroot 进去修改,将修改后的文件系统压缩,然后写入U盘。

首先,挂载 ISO:

	mkdir -p /mnt/kaliiso
	mount -o loop kali-linux-1.0.6-i386.iso /mnt/kaliiso

找到 filesystem.squashfs,解压(apt-get install squashfs-tools安装 unsquashfs):

	unsquashfs /mnt/kaliiso/live/filesystem.squashfs /mnt/kalifs

在这里我将文件系统解压到了 /mnt/kalifs,接着执行:

	BASE=/mnt/kalifs
	mount -o bind /dev $BASE/dev
	mount none -t proc proc/
	mount none -t sysfs sys/
	mount none -t devpts dev/pts/
	cp -rf /etc/resolv.conf $BASE/etc/resolv.conf
	chroot $BASE

之后,就可以出于自己的喜好修改 Live 系统了。

修改完毕之后,不要退出 chroot,执行:

	apt-get clean
	rm -rf /tmp/*
	echo "" > /etc/resolv.conf
	rm -rf /root/.bash_history

清理垃圾。根据你的操作,可能还需要清理 /root 目录下的一些文件。

接着 Ctrl-D 退出 chroot,umount 之前挂载的文件夹:

	umount -lf $BASE/proc
	umount -lf $BASE/sys
	umount -lf $BASE/dev/pts #最好先 umount 这个
	umount -lf $BASE/dev

开始制作 squashfs 文件:

	mksquashfs $BASE filesystem.squashfs -e boot

写入U盘

制作镜像

要制作可启动U盘有两种方法,一种是解压这里的 kali-linux-1.0.6-i386.iso, 将 filesystem.squashfs 替换成自己制作好的这个版本,使用 genisoimage(apt-get install genisoimage) 制作成 ISO 镜像,然后 dd 写入 U盘。

首先新建一个目录,

	mkdir -p /mnt/newiso

然后将 /mnt/kaliiso 下除了 filesystem.squashfs 所有文件复制到这里,将自己制作的文件系统复制到 /mnt/newiso/live 接着:

	cd /mnt/newiso
	genisoimage -rational-rock -volid "KaliLive" -cache-inodes -joliet -full-iso9660-filenames -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -output kali-linux.iso /mnt/newiso

这时做好的 kali-linux.iso 的 mbr 没有引导代码,执行:

	dd if=/usr/lib/syslinux/mbr.bin of=kali-linux.iso bs=440 count=1

把现在的 ISO 写入 U盘,假设所在设备是 /dev/sdX,执行:

	dd if=kali-linux.iso of=/dev/sdX

即可。

syslinux 引导

另一种稍微简便的方法是不制作 ISO 镜像,将 /mnt/newiso/ 的所有内容复制到U盘的分区里面(当然 /mnt/newiso/live/filesystem.squashfs 是你定制的那个版本),然后用 syslinux 引导。

将U盘的一个分区挂载到 /mnt/usb,将它格式化成 ext4 文件系统(也可以是 fat,不过我没有尝试过):

	cp -rf /mnt/newiso/* /mnt/usb
	cd /mnt/usb
	mv isolinux syslinux
	mv syslinux/isolinux.bin syslinux/syslinux.bin
	mv syslinux/isolinux.cfg syslinux/syslinux.cfg

然后安装 syslinux 到 U盘上,这里由于使用的是 ext4 文件系统,要用 extlinux 安装。假设挂载到 /mnt/usb 的是 /dev/sdX1:

	extlinux -i /mnt/usb

这会在 /mnt/usb 下生成 ldlinux.sys 文件。

最后写入 syslinux 的 mbr:

	dd if=/usr/lib/extlinux/mbr.bin of=/dev/sdX bs=440 count=1

###使用 syslinux 6.02

Debian 自带 syslinux 的版本是 4.05,目前最新版是 6.02。就我碰到的情况,4.05 版不支持一些新式的键盘。要使用最新版首先到 https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.02.tar.xz下载源码包并执行:

	tar xvf syslinux-6.02.tar.xz
	cd syslinux-6.02
	apt-get install uuid-dev
	make bios	#这里仅编译 bios 版本
	make install

个人经验是,6.02 和 4.05 在寻找配置文件有差别,4.05 会寻找安装目录下的 syslinux.cfg 和 syslinux/syslinux.cfg,而 6.02 只寻找安装目录下的了。所以安装的话要这样:

	extlinux -i /mnt/usb/syslinux

然后更新 syslinux.bin 和 mbr.bin,并将所有 c32 文件复制过去(并不知道具体需要哪些,但在这个版本下缺少某些可能会无法引导):

	cp -rf /usr/share/syslinux/isolinux.bin /mnt/usb/syslinux/syslinux.bin
	cp -rf /usr/share/syslinux/*.c32 /mnt/usb/syslinux/
	dd if=/usr/share/syslinux/mbr.bin of=/dev/sdX count=1 bs=440

用 syslinux 引导相当灵活,省去了制作 ISO 的麻烦。并且如果U盘有多个分区的话,不会像用 dd 那样会格式化分区。实际上对其他分发版的 Live ISO 引导也可以用这种方法,个人强烈推荐。

参考

http://willhaley.com/blog/create-a-custom-debian-live-environment/

© 著作权归作者所有

R
粉丝 2
博文 4
码字总数 3906
作品 0
益阳
程序员
私信 提问
封装定制的Kali Live ISO

打造专属的Kali ISO – 简介 封装定制的Kali ISO很简单,很有趣,很有意义.你可以用Debian的live-build脚本对Kali ISO进行全面的配置.这些脚本以一系列配置文件的方式对镜像进行全面的自动定制...

广岛秋泽
2015/11/06
0
0
Kali Linux 2016.2 发布,bug 修复 & OS 提升

被黑客和安全专业人士用于渗透测试和网络监视的发行版 Kali Linux 发布了 2016.2。除了 GNOME 桌面环境外,Kali Linux团队同时释出了使用 KDE、Mate、LXDE 和 Enlightenment等不同桌面环境,...

开源中国股侠
2016/09/05
2.7K
4
定制 Kali Linux Live USB 的另一种方法

原理 前文 脱离了广大机械硬盘和 USB 2.0 群众的实际情况,是不得人心的。下面介绍一种更加符合科学发展观的定制方法。 启动时,GRUB 或 extlinux 引导 /live/vmlinuz 和 /live/initrd.img,...

ReJaVu
2015/06/05
3.3K
0
安装Kali Linux操作系统Kali Linux无线网络渗透

安装Kali Linux操作系统Kali Linux无线网络渗透 Kali Linux是一个基于Debian的Linux发行版,它的前身是BackTrack Linux发行版。在该操作系统中,自带了大量安全和取证方面的相关工具。为了方...

大学霸
2015/01/30
1K
1
如何在 VirtualBox 上安装 Kali Linux

Kali Linux 是最好的黑客 和安全爱好者的 Linux 发行版之一。 由于它涉及像黑客这样的敏感话题,它就像一把双刃剑。我们过去在一篇详细的 Kali Linux 点评中对此进行了讨论,所以我不会再次赘...

Linux就该这么学
03/13
74
0

没有更多内容

加载失败,请刷新页面

加载更多

不就是SELECT COUNT语句吗,竟然能被面试官虐的体无完肤

数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。 在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,...

HollisChuang
30分钟前
6
0
乐观锁和悲观锁

乐观锁和悲观锁 在并发环境下,事务的隔离性很难保证,因此会出现很多并发一致性的问题 事务的特性:原子性、一致性、隔离性、持久性 1、丢失修改:T1和T2两个事务对同一个数据进行修改,T1先...

大瑞清_liurq
38分钟前
5
0
Scrum敏捷价值观与原则

Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。如果还不知道Scrum敏捷开发的朋友们,请出门左转,点击 Scrum 了解。 敏捷价值观 个体和互动 高于 流程和工具 工作的软件 高于 ...

醉美閑聖
39分钟前
5
0
android焦点

final RelativeLayout relativeLayout=new RelativeLayout(context); relativeLayout.setClickable(true); relativeLayout.setFocusable(true); rel......

安卓工程师王恒
40分钟前
4
0
IP地址分配与中继设备简介

1. TCP/IP模型 TCP/IP协议是在OSI参考模型出现之间就被开发的,并广泛部署在计算机网络中。但是,后来由于概念混淆,TCP/IP模型的层次和名称往往与OSI模型的层次名称相互借用。如图1.所示。 ...

xiangyunyan
42分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部