如何安装Kali到VirtualBox虚拟机


如何安装kali到VMbox

这是一次失败的经验的记录,按道理说,该修复应该是成功的,但是失败了。如果你要安装 kali 到虚拟机,请下载已经构建好的 kali 的虚拟机版本(即Pre-built Virtual Machines for VirtualBox 或者 VMware),避免浪费时间

实践记录:
下载好 Kali linux Installer Images
点击控制-新建-填入虚拟机的名字-设定分配硬盘和数据的文件夹-设定下载的 Images 为虚拟光盘-分配好内存和 CPU 并勾上“启用 EFI”,此时虚拟机已经建立,点击启动,进入系统安装流程

安装过程中,要不就是失败在“配置软件包管理器,选择并安装软件”,要不就是在“安装 GRUB 引导”时失败

其中的“配置软件包管理器,选择并安装软件”可以先不管,但是 GRUB 引导没有就无法启动系统,本文针对 GRUB 引导挽救展开

  1. 重启系统
  2. 挂载安装系统的 ISO,开机
  3. Advanced options(高级选项)
  4. Rescue mode(急救模式,类似Windows PE)
  5. 选择要救援的根文件系统(我的是/dev/sda2)
  6. 选择”Execute a shell in the installer environment”(在安装环境中执行 shell)
  7. 进入 shell 后执行:
# 查看磁盘分区情况,决定挂载哪个文件系统
fdisk -l

# 递归创建 mnt 目录,等会的文件都写在 内存上的mnt
mkdir -p /mnt

# 挂载根分区(我的分区是/dev/sda2)
mount /dev/sda2 /mnt

# 如果有独立的/boot分区也要挂载
# mount /dev/sda1 /mnt/boot  

# 进入chroot环境
# 为了让新根目录(/mnt)能访问到宿主系统,进行下列镜像(挂载,绑定)
# 挂载,绑定(--bind)/dev 到 /mnt/dev(/dev目录是所有硬件设备文件,挂载后新系统mnt才能识别硬件)
mount --bind /dev /mnt/dev

# proc是内核,进程和系统信息
mount --bind /proc /mnt/proc
或者
mount -t proc /proc /mnt/proc

# sys是将当前 live 环境的 /sys 目录,绑定挂载到 /mnt/sys  
# /sys 提供对硬件的低级访问。挂载后,新挂载的系统才能与硬件交互
mount --bind /sys /mnt/sys

# 挂载完毕
# 切换到硬盘上的 Linux 系统的根目录(/mnt)
chroot /mnt

# 更新包
apt update
apt install --reinstall grub-efi-amd64

# 安装 grub 到 EFI 分区
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Kali
# 生成配置文件
update-grub

# 退出chroot
exit

umount -R /mnt
# 可能报错:umount: invalid option --R

# 报错后可以挨个卸载(注意:必须从最里层(子挂载点)开始卸载,否则会提示 `target is busy`)
umount /mnt/boot/efi
umount /mnt/sys
umount /mnt/proc
umount /mnt/dev
umount /mnt


# 上面的卸载命令太长,可展开卸载
umount /mnt/{boot/efi,boot,sys,proc,dev,}

# 也可以直接重启,系统会自动处理卸载挂载点
reboot

什么是挂载:

正常情况下,挂载是把一个分区或设备的文件系统挂载到某个目录:
mount /dev/sda1 /mnt
意思是:把 /dev/sda1 分区的内容显示在 /mnt 目录下,是把某个目录“映射”到另一个位置

mount --bind /home/user/docs /mnt/docs
效果为:
/mnt/docs 目录下会显示 /home/user/docs 的内容,两个路径其实是同一个东西,对其中一个目录修改,另一个目录也会同步变化,就好像给目录创建了一个“镜像入口”

和软链接/硬链接的区别

  1. 软链接(symlink):类似 Windows 的快捷方式,删除原文件后,链接会失效
  2. 硬链接(hard link):是指向文件的同一 inode,适合文件,不适合目录
  3. 绑定挂载(bind mount):是挂载层级的映射,适合目录甚至整个文件系统,比硬/软链接更强大

花了很长时间做这些挽救,系统启动还是失败了,直接下载Pre-built Virtual Machines,导入虚拟机,成功启动!


文章作者: Alan Work
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alan Work !
  目录