解决turmex安装kali报错问题

在手机上安装好turmex后,都喜欢安装一个Linux系统,我当时安装的时kali,但是安装过程中,报错不断。

2019.8.24更新

1,出现问题首先看下载kali源文件是否完整

安装步骤中,会显示[解压中.....]  ,可以看到解压的大小。

如图所示,完整源文件不小于81M。

如果源文件过小,则说明下载错误,而且在remove kali 这个命令下,是不会删除源文件的,下一次安装只会检测一次

然后如果有这个名字,就跳过下载了,要手动删除这个文件。

在根目录下 cd  .atilo  可以看到有tmp 文件夹,里面就是已经下载的不一定完整的源文件,可以手动删除,也可以手动修改脚本

里面是一个if……else……判断, 屏蔽掉if  直接执行else的函数体就行了。

2,安装完毕后,进入kali系统的要执行如下两条指令:

proot  --link2symlink             获取proot权限

startkali                                进入系统

 

分割线


下面记录一个最常见的错误:

Upgrading ... ] proot warning: can't sanitize binding "/sdcard": No such file or directory

proot warning: can't chdir("/root/.") in the guest rootfs: No such file or directory

proot info: default working directory is now "/"

proot error: '/usr/bin/env' not found (root = /home/.atilo/kali, cwd = /, $PATH=(null)) fatal error: see `proot --help`.

proot error: trying to remove a directory outside of '/data/data/com.ter

 

看问题,出现的是proot警告,总之就是没有root权限。

然后我们来分析一下atilo_cn的脚本(中文的就是用CN文件夹下的该文件安装)

在152行的  select_linux()函数的作用就是选择根据第二个参数选择对应的系统,同时标明源的网址。

主要是为upgrade变量进行赋值。

function select_linux()
{

	case "$1" in
	     fedora)
            aarch64=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/30/Container/aarch64/images/Fedora-Container-Base-30-1.2.aarch64.tar.xz
		    arm=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/27/Docker/armhfp/images/Fedora-Docker-Base-27-1.6.armhfp.tar.xz
		    amd64=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/30/Container/x86_64/images/Fedora-Container-Base-30-1.2.x86_64.tar.xz
		    if [[ ${time_arch} = "i386" ]]; then 
                 error "Fedora 不支持x86架构"
            fi
		    upgrade="dnf makecache"
	    	;;
	    debian)
		    curl "https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/debian/buster/${time_arch}/default/" -o tmp.html 
		    ttime=`sed -n '7p' tmp.html | cut -d'>' -f2 | cut -d'<' -f1`              
	        rm tmp.html
	    	aarch64=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/debian/buster/arm64/default/${ttime}rootfs.tar.xz
	    	arm=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/debian/buster/armhf/default/${ttime}rootfs.tar.xz
	    	amd64=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/debian/buster/amd64/default/${ttime}rootfs.tar.xz
    		i386=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/debian/buster/i386/default/${ttime}rootfs.tar.xz
    		zip=pJx
	        mirrors="deb http://mirrors.tuna.tsinghua.edu.cn/debian buster main\ndeb http://mirrors.tuna.tsinghua.edu.cn/debian-security/ buster/updates main"
    		mirrorspath="etc/apt/sources.list"
    		upgrade="apt update && apt upgrade"
	    	;;
	    alpine)
            aarch64=https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.10/releases/aarch64/alpine-minirootfs-3.10.0-aarch64.tar.gz 
	    	arm=https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.10/releases/armhf/alpine-minirootfs-3.10.0-armhf.tar.gz
    		amd64=https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.10/releases/x86_64/alpine-minirootfs-3.10.0-x86_64.tar.gz
    		i386=https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.10/releases/x86/alpine-minirootfs-3.10.0-x86.tar.gz
            zip=pzx
    		sh=ash
    		mirrors="http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.10/main\nhttp://mirrors.tuna.tsinghua.edu.cn/alpine/v3.10/community"
    		mirrorspath="etc/apk/repositories"
    		upgrade="apk update && apk upgrade"
	    	;;
    	arch)
    		aarch64=https://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/os/ArchLinuxARM-aarch64-latest.tar.gz
    		arm=https://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/os/ArchLinuxARM-armv7-latest.tar.gz
    		if [[ ${time_arch} = "i386" || ${time_arch} = "amd64" ]];then
                 error "Arch 不支持 x86 及 amd64 架构"
            fi
	    	zip=pzx
    		mirrors="Server = http://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/\$arch/\$repo"
    		mirrorspath="etc/pacman.d/mirrorlist"
    		upgrade="pacman-key --init && pacman-key --populate archlinuxarm "
	    	;;
    	ubuntults)
    		curl "https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/bionic/${time_arch}/default/" -o tmp.html >/dev/null 2>&1
    		ttime=`sed -n '7p' tmp.html | cut -d'>' -f2 | cut -d'<' -f1`
		rm tmp.html
	        aarch64=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/bionic/arm64/default/${ttime}rootfs.tar.xz
    		arm=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/bionic/armhf/default/${ttime}rootfs.tar.xz
    		amd64=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/bionic/amd64/default/${ttime}rootfs.tar.xz
    		i386=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/bionic/i386/default/${ttime}rootfs.tar.xz
    		zip=pJx
    		mirrors="deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic main restricted universe multiverse\ndeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports bionic-updates main restricted universe multiverse"
    		mirrorspath="etc/apt/sources.list"
    		upgrade="apt update "
    		;;
        ubuntu)
    		curl "https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/disco/${time_arch}/default/" -o tmp.html >/dev/null 2>&1
    		ttime=`sed -n '7p' tmp.html | cut -d'>' -f2 | cut -d'<' -f1`
    		rm tmp.html
    		aarch64=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/disco/arm64/default/${ttime}rootfs.tar.xz
	        arm=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/disco/armhf/default/${ttime}rootfs.tar.xz
    		i386=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/disco/i386/default/${ttime}rootfs.tar.xz
    		amd64=https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/disco/amd64/default/${ttime}rootfs.tar.xz
    		zip=pJx
    		mirrors="deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports disco main restricted universe multiverse\ndeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports disco-updates main restricted universe multiverse"
	        mirrorspath="etc/apt/sources.list"
    		upgrade="apt update "
	    	;;
    	kali)
    		select_linux "debian"
	    	upgrade='apt update &&apt install gnupg gnupg1 gnupg2 -y && echo -e "deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib\ndeb-src http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib" > /etc/apt/sources.list && apt-key adv --recv ED444FF07D8D0BF6 && apt update && apt upgrade'
    		;;
    	*)
    		error "[ 不支持的发行版 $1 ]"
    		;;
    esac

}

最下面是kali的选项的变量

upgrade='apt update &&apt install gnupg gnupg1 gnupg2 -y && echo -e "deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib\ndeb-src http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib" > /etc/apt/sources.list && apt-key adv --recv ED444FF07D8D0BF6 && apt update && apt upgrade'。

  

其中&&的意思是第一条执行成功后再执行下一条指令,所以这个变量的主要为了执行后面一连串的指令。

然后继续往下看,在install_linux()函数中有:

cat > ${PREFIX}/bin/start${release_name} <<- EOM
#!/data/data/com.termux/files/usr/bin/bash
cd \$HOME/.atilo/
unset LD_PRELOAD
command="proot"
command+=" --link2symlink"
#command+=" -0"
command+=" -S ${release_name}"
#command+=" -b /system"
command+=" -b /sdcard"
command+=" -b /dev/"
#command+=" -b /sys/"
command+=" -b /proc/"
#uncomment the following line to have access to the home directory of termux
#command+=" -b /data/data/com.termux/files/home"
command+=" -w /root"
command+=" /usr/bin/env -i"
command+=" HOME=/root"
command+=" LANG=C.UTF-8"
command+=" PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
command+=" TERM=xterm-256color"
command+=" /bin/${sh} --login"
export PROOT_NO_SECCOMP=1
com="\$@"
if [ -z "\$1" ];then
    exec \$command
else
    \$command -c "\$com"
fi
	EOM

这又是一串指令,目的就是在proot权限下 创建了一堆目录,并且设置了环境变量。

 

最后是

tips "[ 升级中 ... ]"
start${release_name} ${upgrade}

tips "[ 全部完成 ]"
tips "start${release_name} 以开始"

先startkali ${upgrade}   (注意这个upgrade变量)

再startkali 进入kali系统。

所以我们的问题就是出现在第一个指令的位置,更新错误。

所以我选择分步执行的。

在脚本中修改最后一项为

upgrade = 'apt update && apt install gunpg gunpg1 gunpg2 -y && apt-key adv --recv ED444FF07D8D0BF6

 && apt update && apt upgrade'   (这里事先我已经把清华源添加到了sources.list中了,所以没有挂那些网址)。

 

然后执行

proot --link2symlink -S kali -b /sdcard -b /dev/ -b /proc/ -w /root /usr/bin/env -i  HOME=/root LANG=C.UTF-8 PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:usr/local/sbin TERM=xterm-256color /bin/bash --login -c apt update
 

这样基本就完成了,

最后在startkali命令执行之前,要先执行 proot --link2symlink指令,是获取proot权限的。

后面就可以进入系统。

 

 

安装 Kali Linux 的过程中,如果遇到软件安装错误,可能由多个因素引起。以下是几种常见的解决方法,能够帮助定位并解决问题: ### 检查系统版本和镜像稳定性 1. 如果使用的是较新发布的 Kali Linux 版本(如 2022.3),可能会因为版本不稳定而出现安装问题。可以尝试降级到一个更稳定的版本(例如 2022.2)[^3]。 2. 确保从官方网站下载的镜像文件是完整且未损坏的。可以通过校验镜像文件的哈希值来验证其完整性。 ### 更新源配置 1. 安装完成后,确保更新系统的软件源列表,以便获取最新的软件包信息。这有助于避免因过时的源而导致的依赖性问题[^2]。 ```bash sudo apt update && sudo apt upgrade -y ``` ### 处理内核头文件缺失问题 1. 在某些情况下,虚拟机环境(如 VMware 或 VirtualBox)中安装 Kali Linux 可能会遇到缺少内核头文件的问题。可以通过以下命令安装相应的内核头文件: ```bash sudo apt install linux-headers-$(uname -r) sudo apt install linux-headers-amd64 ``` 这些步骤通常能解决与硬件驱动相关的兼容性问题[^1]。 ### 解决 PostgreSQL 版本冲突 1. 如果在安装特定软件(如 OpenVAS)时遇到了 PostgreSQL 数据库版本不兼容的问题,可以通过手动切换 PostgreSQL 版本来解决。例如,停用旧版本并启用新版本: ```bash sudo apt install postgresql-13 sudo systemctl stop postgresql@13-main sudo systemctl daemon-reload sudo pg_dropcluster 13 main --stop sudo pg_upgradecluster 12 main ``` 上述操作将帮助您迁移数据库集群至新的 PostgreSQL 版本,并确保服务正常运行[^5]。 ### 自定义安装注意事项 1. 对于自定义安装过程中可能出现的问题,建议预先规划好分区方案,并选择合适的安装选项以减少潜在的配置冲突。 2. 如果不确定如何正确配置某些高级设置,可以选择默认选项进行安装,之后再根据需要调整系统配置。 ### 软件包管理器问题 1. 当尝试安装非官方支持的软件包时(如 Node.js),直接从上游网站下载的 RPM 包可能无法很好地适配 Kali Linux。在这种情况下,最好遵循针对 Kali Linux 的特定指南来构建或安装所需的软件包[^4]。 ---
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值