• KAL1 LINUX 官方文档之kali开发---自定义 Beaglebone Black 镜像


     

    以下文档描述了我们自己的创建自定义Kali Linux Beaglebone Black ARM映像的方法,并且针对开发人员。如果您想安装预制的Kali映像,请查看我们在Beaglebone Black上安装Kali的文章。

    您需要具有root用户特权才能执行此过程,或者需要具有使用命令“ sudo su”升级特权的功能。

    01.创建一个Kali rootfs

    使用armhf架构,按照我们的Kali文档中的描述构建Kali rootfs在此过程结束时,你应该在 ~/arm-stuff/rootfs/kali-armhf 中有一个填充的 rootfs 目录。

    02.创建图像文件

    接下来,我们创建物理映像文件,该文件将保存我们的Beaglebone Black rootfs和启动映像。

    apt install -y kpartx xz-utils sharutils
    cd ~/
    mkdir -p arm-stuff/images/
    cd arm-stuff/images/
    dd if=/dev/zero of=kali-custom-bbb.img bs=4M count=7000
    

    03.分区并挂载映像文件

    parted --script kali-custom-bbb.img mklabel msdos
    fdisk kali-custom-bbb.img << __EOF__
    n
    p
    1
    
    +64M
    t
    e
    p
    w
    __EOF__
    parted --script kali-custom-bbb.img set 1 boot on
    fdisk kali-custom-bbb.img << __EOF__
    n
    p
    2
    
    w
    __EOF__
    
    loopdevice=`losetup -f --show kali-custom-bbb.img`
    device=`kpartx -va $loopdevice| sed -E 's/.*(loop[0-9])p.*/1/g' | head -1`
    device="/dev/mapper/${device}"
    bootp=${device}p1
    rootp=${device}p2
    
    mkfs.vfat -F 16 $bootp -n boot
    mkfs.ext4 $rootp -L kaliroot
    mkdir -p boot
    mkdir -p root
    mount $bootp boot
    mount $rootp root
    

    04.复制和修改Kali rootfs

    rsync -HPavz /root/arm-stuff/rootfs/kali-armhf/ root
    echo nameserver 8.8.8.8 > root/etc/resolv.conf
    

    05.编译Beaglebone Black内核和模块

    如果您不使用ARM硬件作为开发环境,则需要设置一个ARM交叉编译环境来构建ARM内核和模块。完成后,请按照以下说明进行操作。

    cd ~/arm-stuff/
    wget https://launchpad.net/linaro-toolchain-binaries/trunk/2013.03/+download/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2
    tar -xjf gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2
    export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-
    
    git clone git://git.denx.de/u-boot.git
    cd u-boot/
    git checkout v2013.04 -b beaglebone-black
    wget https://raw.github.com/eewiki/u-boot-patches/master/v2013.04/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
    patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
    make ARCH=arm CROSS_COMPILE=${CC} distclean
    make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_config
    make ARCH=arm CROSS_COMPILE=${CC}
    cd ../
    
    mkdir -p kernel/
    cd kernel/
    git clone git://github.com/RobertCNelson/linux-dev.git
    cd linux-dev/
    git checkout origin/am33x-v3.8 -b tmp
    ./build_kernel.sh
    mkdir -p ../patches/
    wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch -O ../patches/mac80211.patch
    cd KERNEL/
    patch -p1 --no-backup-if-mismatch < ../../patches/mac80211.patch
    cd ../
    ./tools/rebuild.sh
    cd ../
    
    cat <<EOF > boot/uEnv.txt
    mmcroot=/dev/mmcblk0p2 ro
    mmcrootfstype=ext4 rootwait fixrtc
    uenvcmd=run loaduimage; run loadfdt; run mmcargs; bootz 0x80200000 - 0x80F80000
    EOF
    
    cp -v kernel/linux-dev/deploy/3.8.13-bone20.zImage boot/zImage
    mkdir -p boot/dtbs
    tar -xovf kernel/linux-dev/deploy/3.8.13-bone20-dtbs.tar.gz -C boot/dtbs/
    
    tar -xovf kernel/linux-dev/deploy/3.8.13-bone20-modules.tar.gz -C root/
    tar -xovf kernel/linux-dev/deploy/3.8.13-bone20-firmware.tar.gz -C root/lib/firmware/
    
    cat <<EOF > root/etc/fstab
    /dev/mmcblk0p2 / auto errors=remount-ro 0 1
    /dev/mmcblk0p1 /boot/uboot auto defaults 0 0
    EOF
    
    umount $rootp
    kpartx -dv $loopdevice
    losetup -d $loopdevice
    

    使用dd命令将此文件镜像到SD卡。在我们的示例中,我们假设存储设备位于/dev/sdb根据需要更改它。

    dd if=kali-custom-bbb.img of=/dev/sdb bs=4M
    

    dd操作完成后,卸载并弹出SD卡,然后将Beaglebone Black引导到Kali Linux中。引导时,您需要按住“ BOOT”按钮,它是离microSD卡最近的一个按钮。

  • 相关阅读:
    MySQL二进制文件(binlog)
    Linux命令 find和mv的结合使用:查找文件,移动到某个目录
    必会的Linux命令
    Linux kill -9 和 kill -15 的区别
    ansible-playbook 修改主机的host解析
    基于mssql 触发器的访问权限设置
    一个简单的启停服务脚本
    Redis protected-mode属性解读
    Nginx内置变量
    haproxy—TCP负载均衡
  • 原文地址:https://www.cnblogs.com/GKLBB/p/13587834.html
Copyright © 2020-2023  润新知