NOTETips:
本教程于 2026.1 更新
由于教程是在 WSL 子系统教程之后编写的,只作为针对新手的补充,后续可以参照子系统的教程,相对来说没有子系统的教程细致,但是更适合新手
- 使用 VMWare:VMWare Linux 基础配置
- 使用 WSL:WSL Linux 基础配置
- 工具安装:基础 Pwn 环境安装
本教程默认你有了基本的计算机操作水平并且已经解决了任何网络问题
由于网页和图床代理到 Cloudflare,如果你浏览有些卡顿甚至加载失败,请自行加速并刷新
1. 安装 WSL 2
TIP无论你有没有安装过子系统,在你选择了 Windows 11 的时候,你就可以使用
wsl命令
在此之前,请确保你开启了Windows 功能中的适用于 Linux 的 Windows 子系统与虚拟机平台

微软提供了详细的安装 WSL 2 的方式:
简单来讲就是在 cmd(Powershell)里一句命令的事情
wsl --update2. 下载并安装任意发行版
TIP提示:所有方法安装后均可以在 Windows Terminal 找到对应的快捷选项卡
2-1 使用微软商店
这里以安装 Kali-Linux 为示例,使用微软商店是最简单的方式,直接打开 Microsoft Store 搜索 Kali Linux 下载安装并打开

2-2 使用命令行
也是很简单的方式,我们只需要输入
wsl --list --online然后输入
wsl.exe --install <发行版名称>安装即可

2-3 解包官方发行版安装包并安装
使用微软商店安装镜像会默认安装到 C 盘,这里可以手动解压微软官方的 Appx 安装包并运行安装包的初始化 exe 程序,确保镜像生成在和 exe 程序相同目录,免去二次迁移位置的苦恼,这里还是以安装 Kali-Linux 为示例
下载 Kali Linux 的 Appx 可以在下面的网页中下载
你只需要去微软商店点击分享按钮并复制链接到网页就可以下载了,本体在 Appxbundle 中

下载好以后可以双击安装,当然,用压缩软件打开发现以下文件

选择最下面的 x64 并再次用压缩软件打开(除非你真的用 ARM 架构的 Windows),并挑个好位置解压,文件夹里面应该有下面的文件,到此就算安装完毕了,只需要启动 kali.exe 就可以进行初始化

2-4 导入任意类型 tar 安装包
如果你是官网下载的 Ubuntu 或者是其他的官方发行版,亦或者是第三方发行版,*只要你找到对应的根文件系统的 .tar 包,你就可以导入到 WSL 里
下载了 Ubuntu 最新的 WSL 安装包

接着就可以使用一下命令导入
wsl.exe --import <发行版名称> <安装位置> <文件位置> [Options]Options: --version <Version> --vhd举例,我要导入上文的包到一个目录,例如 F:\Virtual-Machine\Ubuntu ,那么我就会输入
wsl --import Ubuntu "F:\Virtual-Machine\Ubuntu" "C:\Users\Lufiende\Downloads\ubuntu-24.04.3-wsl-amd64.gz"这个方式安装可能会导致 Windows Terminal 图标有问腿,需要手动定位
3. 简单配置虚拟机
touch ~/.hushlogin3-1 WSL 基本设置
如果你开着一些代理软件,你可能会发现,他会告诉你诸如 Nat 模式无法使用代理等等的提醒,这是因为微软塞了一堆奇怪的小功能,你可以尝试去改动一些 WSL 的设置,如果你开着 Windows 的更新,你大抵是可以在开始菜单看到这个

你可以参考我的设置,我放到了下面,如果你没有看到这个,你可以去用户目录下(C:\Users\xxx)新建一个 .wslconfig 文件写入配置,具体配置写法可以参照:
(事实上能改的不止这一个,还有 wsl.conf,.wslgconfig 等)
配置文件内容如下~~(实际就是个配置文件生成器)~~
[wsl2]processors=16networkingMode=Mirrored[experimental]hostAddressLoopback=truesparseVhd=true
关键的选择也是有的,这个 Mirrored 的网络模式也是有意思的,这个是继承自 Hyper-V 的功能,十分方便,能直接引用系统代理,如果你将来要进一步进行各种物联网仿真工作的话,其实 Nat 也是一种很好的选择
同时你可以选择默认启用稀疏 VHD 使得删除文件时虚拟磁盘文件可以同步缩小
3-2 用户操作
3-2-1 创建用户
如果你使用上文前三种的方式创建了虚拟机,第一次打开它大概率会直接要求你建立一个账户并设置一个密码,按提示设置即可,以防万一还是提醒一下你看不到你输入的密码
如果你使用第四种方法,大概率登录直接是 root 账户,那么你可以新建一个,默认情况下都会建议你,用户名不能包含大写字母,也不能包含某些特殊字符,当然我也建议遵守这条限制
useradd -m <用户名> # 添加用户,-m 可以建立 /home 下的用户名目录passwd <用户名> # 改密码su <用户名> # 切换用户3-2-2 添加用户到 Sudo 组
先看看你的账户能不能用 sudo,如果输入密码之后提示 xxx is not in the sudoers file,接着往下看
进入 root 用户,如果你不知道密码,你可以使用
wsl -d <发行版> -u root进入 root,然后使用 passwd 新建一个密码,可以方便以后直接进入,然后
usermod -aG sudo <用户名>就可以了
3-2-3 将 Sudo 组免密(可选)
我们需要修改 /etc/sudoers 实现效果
sudo visudo# 或者su rootvisudoroot ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
@includedir /etc/sudoers.d图示如下

3-3 更新软件源
目前实测,大概率,你不需要进行任何换源操作就能更新,会自动使用镜像源,虽然镜像源不是很稳定,直接
sudo apt updatesudo apt full-upgrade #(可选)3-4 汉化虚拟机
我们可以趁机把汉化搞一下
sudo apt install locales
sudo apt install locales-all # 有就安,不用等待生成了,kali 自带了sudo dpkg-reconfigure locales看介绍,这是要生成不同地区使用语言的区域设置,用滚轮或者上下键选择语言,这里以防万一可以全选,也可以拉下去只选 zh_CN.UTF-8 UTF-8 和 en_US.UTF-8 UTF-8,然后回车

回车后,接下来是选择默认语言,选择 zh_CN.UTF-8 就可以,除非你是罕见,选完之后关掉现在的终端,重启或者 logout 也行,重新打开就能看见效果,比如看看 apt 的超级牛力

3-5 备份虚拟机
十分简单,备份只需要
wsl --export <发行版名称> X:\path\to\xxx.tar导入类似于 2-4 提供的安装方法,可以
wsl --import <发行版名称> X:\path\to\ext4.vhdx (即<存放目录>) X:\path\to\xxx.tar (即<备份目录>) --version 24. 针对性的高级配置
4-1 Kali-Linux 高级配置
4-1-1 安装配套开箱即用 MetaPackages
如果你安装了一个 Kali 发行版,他可能会提示你一些内容,例如

意思是 WSL 安装 Kali 都是以最小化模式安装的,并没有附带 Kali 的哪些强大的工具包,接下来就是去安装那些包的过程,安装的包叫 Metapackages,就是一次能安很多包的包,为了以后的方便,我们需要安装一些初始工具包,让 Kali 更加完整,我们会在下面指导这部分的安装内容,安装完后会自动消失
当然你也可以选择不安装,我这里选择不安装自带包,感觉我不是很用的上,忽略提示也可
官方链接:
可以按官方教程来
我们首先需要执行
sudo apt updatesudo apt full-upgrade -ykali-tweaks然后就会出现

第二项就是我们要安装的 Metapackages 了,这里我放出来了官方的描述
kali-linux-core: Base Kali Linux System – core items that are always includedkali-linux-headless: Default install that doesn’t require GUIkali-linux-default: “Default” desktop images include these toolskali-linux-arm: All tools suitable for ARM deviceskali-linux-nethunter: Tools used as part of Kali NetHunter
一般选圈住的第一个的 kali-linux-default,用不到图形化界面可以选择 kali-linux-headless,如果喜欢一步到位可以选择 kali-linux-large,如果有特殊需求可以结合官网安装其他的包

4-1-2 Kali-tweaks 自定义选项
Shell & Prompt

Configure Prompt 用于调整终端的主题样式,可以自行摸索
Default Login Shell 用于调整默认终端,一般是 bash 和 zsh 中选择,这里建议大家可以在把默认终端改成 zsh,因为好用
Reset Shell Config 用于重置终端设置,就是 .bashrc 和 .zshrc 之类的
Network Repositories

Additional Kali repositories 别选,各位师傅你也不想因为一些包不稳定的更新而崩溃吧
Mirrors 是下载源的设置,你看到这里会发现我根本没有提过换源这个说法,其实是 kali 会自动用适合所在地的镜像而已,如果没有特殊原因无需变动
Protocol 是选协议,对于 apt 来说 https 其实安全不到哪去,维持原样即可
Hardening Settings

Kernel settings 涉及到关于 dmesg 命令的使用权限以及特权端口选项的开关,这个根据需要配置,你当个赛棍还管这么多,又用不到
Wide Compatibility mode 可以让你连接一些旧的,老的,不安全的客户端,按需开启
4-2 使用易用的 Shell
如果你使用的是 Kali-Linux,那么看上面的
Kali-tweaks切换终端,以及简单美化如果你想美化终端,可以看下方的
个性化终端
一般来说,常用的 Shell 包括 sh ,bash, zsh 三种 Shell,其中我们常用前两者来解释我们写的 *.sh 脚本,后者作为我们日常使用的利器,大部分的发行版都包括了前两者 ,一些简洁的系统,例如 Alpine,则只有由 busybox 支持的 sh 一个 Shell
另外的,还有支持分屏的 tmux ,请大家自行探索,可以根据你的系统来安装
sudo apt install bash zsh
cat /etc/shells # 查看安装了多少 Shell
echo $SHELL # 查看当前使用的 Shellecho $0 # 同上,查看当前使用的 Shell
# 切换 Shell:chsh -s [shell 位置]chsh -s /bin/bash # 切换为Bashchsh -s /bin/zsh # 切换为Zsh4-3 个性化 Shell(可选)
4-3-1安装 oh-my-zsh
sudo apt install wget git curl这里使用 oh-my-zsh 来进行个性化,官网:
点击 install oh-my-zsh 之后,页面会自动滚到下载连接页

# 复制下载链接(注意时效性,二选一)sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"链接粘贴到终端下载就行,安装时会自动帮你把原本的 .zshrc 备份到同目录下的 .zshrc.pre-oh-my-zsh
效果如下图

4-3-2 安装前置字体
在此之前,你需要了解,因为这些主题通常会用到专业的字体,常见的可能就是 Nerd 和 Powerline ,某些主题很可能会推荐其中之一的字体,甚至是会直接提供基于这些字体修补过的专用字体,安装主题时需要多留意源网页的安装指导
NOTE下文的 Powerlevel10k 使用了修补过的 nerd 字体
如果没有给出特定的下载连接或者是字体样式,你可以尝试普通的 Nerd 或者是 Powerline
Nerd 下载地址:
Powerline 仓库:
由于通常使用子系统会使用 Windows Terminal ,所以我们需要在 Windows Terminal 进行一些配置


选择安装的字体就可以了,图片仅作示例
4-3-3 搜索并安装主题
完成这些工作,你可以在官网的 Themes 找到各种主题

当然也可以自行在搜索引擎上寻找自己喜欢的主题
但是,每个主题的安装方式可能有差别,所以请大家仔细阅读每个主题提供的安装文档!
这里我以 Powerlevel10k 主题为例,链接:选择它
可以参考源页面的安装方法,下载方式
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k也可以使用 gitee.com 上的官方镜像加速下载
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k编辑 ~/.zshrc 并找到 ZSH_THEME , 改为 "powerlevel10k/powerlevel10k"

这个主题第一次运行会有一个引导初始化设置的界面,如果不小心关掉或者想尝试一些别的设置可以使用 p10k configure 再次启动

4-3-4 启用一些喜欢的 oh-my-zsh 插件
zsh 内置了许多丰富的插件,查看可以在 $ZSH/plugins/ 下查看

网络上也有许多优秀的插件,比如 zsh-syntax-highlighting
它们都在 $ZSH/custom/plugins/ 目录下
包括 zsh-syntax-highlighting 在内的第三方插件都会在 github 官方文档中写明插件的安装方式,例如
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting更多有意思的插件可以在网络上寻找或查找相关大佬的文章
当安装好插件后就可以启用了,还是在 .zshrc 中启用,我们找到 plugins=() 进行修改
plugins=( # 我的示例,这里面写你要添加的插件名字 git zsh-syntax-highlighting # 外部 z ssh zsh-completions # 外部 command-not-found history history-substring-search you-should-use # 外部 )保存退出,重启 zsh 就可以看到改变了
4-4 联动 VSCode
前往官网下载 VS Code
首先,确保宿主机安装了 VSCode ,并且安装了 WSL 插件

尝试在 VSCode 中连接一下当前的虚拟机,点左边下面的 >< 点 连接到 WSL

或者,尝试在虚拟机中使用
code .一般来讲会安装一个叫 .vscode-server 的东西,这个安装完就可以正常使用
如果不能用,把下面这个放到 .bashrc 或者是 .zshrc
alias code="/mnt/<映射主机的 VSCode 安装目录>/bin/code"之后直接在目录中使用
wsl -d kali-linuxcode .即可使用 vscode 编写脚本
5. Python 独立环境安装
5-1 为什么我需要一个独立 Python 环境
众所周知,Python 一般各个发行版都会提供,我们可以使用 apt 安装,甚至已经内置,为什么我们不直接使用,并在系统的 Python 直接安装各种包呢?
其实,系统层面的 Python 大概率是为系统的其他部件提供支持的,许多 Python 项目通常需要依赖某些特定版本的库,可以说是专门为了系统各种软件和功能量身定制的,甚至可以说并不是给用户准备的,如果你后期安装了一些系统已经内置的包,但是版本有冲突,可能会出现一些问题
对于某些经常更新的系统,例如 Kali-linux,它是一个 Rolling Release 即 滚动更新 的版本,apt 会不定期的更新安装所有安装的包,如果你和小伙伴约定组一辈子的 ctf 战队的话,如果遇到更新 Python 的情况,默认使用系统安装的 Python 的话,默认 Python 有朝一日可能会被更改成一个更新的版本,这时候你使用 Python 就会发现你的 Python 环境一朝回到解放前,只能使用诸如 python3.xx 的命令运行 Python 并且一些程序也会因为缺少依赖而无法运作,这是因为他会改掉 Python 对应的默认版本
理论上你可以通过修改 Python 的链接符号,或者是在新版本 Python 对应 pip 安装包时添加参数 --break-system-packages 来达成目的,但是我认为通过 pip 安装会在滚动更新的系统上引起一些其他不必要的 bug,创建一个虚拟环境来安装需要的包是个不错的选择

这里有几种解决方法:
- 使用
pyenv、conda类型的环境管理 - 使用
uv进行环境管理 - 使用
pipx - 使用
apt安装python3-pwntools等包
这里只介绍前两种,通常你只需要一个独立的环境即可,不需要太麻烦的环境管理
5-2 安装 uv
uv 有详细的官方文档:
可以使用一键安装脚本,请确认 ~/.local/bin 处于环境变量中
curl -LsSf https://astral.sh/uv/install.sh | sh如果你想自定义安装的话,可以定义下面几个环境变量,记得把下面存放可执行文件的目录放到环境变量中,也可以参考官方的 init 方法
# 写入 .bashrc
export UV_INSTALL_DIR="/mnt/wsldata/Environment/uv"# 这是 uv 的安装目录,先定义环境变量再执行安装脚本
export UV_CACHE_DIR="$UV_INSTALL_DIR/cache"# 这是 uv 的缓存目录
export UV_PYTHON_BIN_DIR="$UV_INSTALL_DIR/bin"# 这是 python 可执行文件目录,需要添加到 PATH
export UV_PYTHON_INSTALL_DIR="$UV_INSTALL_DIR/installed"# 这是 uv 的 pytohn 安装目录
export UV_TOOL_BIN_DIR="$UV_INSTALL_DIR/toolbin"# 这是 uv 所有安装的包的可执行文件目录,需要添加到 PATH
export UV_TOOL_DIR="$UV_INSTALL_DIR/tools"# 这是 uv 的包安装目录安装过后可以尝试执行 uv,发现可以正常工作

5-3 安装 Pyenv
Pyenv 官方仓库:
一键安装可以使用官方提供的脚本
curl -fsSL https://pyenv.run | bash如果你想安装到自己的目录,你可以尝试
git clone https://github.com/pyenv/pyenv.git /path/to/directory如果你使用 zsh,下一步需要执行下面的命令(作用是添加下面对应内容进入 .zshrc)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrcecho '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrcecho 'eval "$(pyenv init - zsh)"' >> ~/.zshrc自己安装请改动目录位置
echo 'export PYENV_ROOT="/path/to/directory/.pyenv"' >> ~/.zshrcecho '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrcecho 'eval "$(pyenv init - zsh)"' >> ~/.zshrc
# 追加插件git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenvecho 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc你可以参考我的

然后就可以使用了
pyenv # 输入
pyenv 2.6.7-13-g2ecd676aUsage: pyenv <command> [<args>]
Some useful pyenv commands are: commands List all available pyenv commands exec Run an executable with the selected Python version global Set or show the global Python version(s) help Display help for a command hooks List hook scripts for a given pyenv command init Configure the shell environment for pyenv install Install a Python version using python-build latest Print the latest installed or known version with the given prefix local Set or show the local application-specific Python version(s) prefix Display prefixes for Python versions rehash Rehash pyenv shims (run this after installing executables) root Display the root directory where versions and shims are kept shell Set or show the shell-specific Python version shims List existing pyenv shims uninstall Uninstall Python versions --version Display the version of pyenv version Show the current Python version(s) and its origin version-file Detect the file that sets the current pyenv version version-name Show the current Python version version-origin Explain how the current Python version is set versions List all Python versions available to pyenv whence List all Python versions that contain the given executable which Display the full path to an executable
See `pyenv help <command>' for information on a specific command.For full documentation, see: https://github.com/pyenv/pyenv#readme但是还没有结束,你需要安装 一些库来保证你可以编译出 Python,不同发行版可以参考:
这里列出 Debian 系的包列表
sudo apt update;sudo apt install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl git libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev然后就可以准备安装工作
pyenv install -l # 列出版本列表pyenv install <某个列出的版本号>
# 替换默认终端(可选)pyenv global <某个列出的版本号>zsh # 刷新终端,可能需要5-4 安装 Anconda 或 Miniforge
Anconda 自带的库我们很可能用不到,反正用到还能自己装,所以我们选择小而美的 Miniconda,当然选择 Anconda 也可以
Anconda 官网:
点击 Skip Registration 跳过登录即可下载(或者 Download Now | Anaconda),不过为了方便我们可以复制下载链接使用 wget(注意链接时效性)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shchmod 777 Miniconda3-latest-Linux-x86_64.sh./Miniconda3-latest-Linux-x86_64.sh我们还可以在阅读完用户协议后定义安装路径
如果你以后可能会涉及到商业纠纷的问题,那你可以使用这个社区版,去 Releases 下载安装包安装
chmod 777 Miniforge3-25.3.0-3-Linux-x86_64.sh./Miniforge3-25.3.0-3-Linux-x86_64.sh同上文安装方法,安装之后,正常情况下你可以直接使用初始化命令
conda init
zsh # 刷新终端默认情况下,初始化之后每次启动 Shell 会自动激活自带的 base 环境
5-5 创建更加独立的虚拟环境
TIP提示:部分
oh-my-zsh主题可能会使conda/pyenv显示环境名的功能失效,每个主题修复的方式不一,大家可以自行百度
因为你会在不同的场合安装不同的包,所以你大概率需要创建一个虚拟环境,如果你立志成为一个 Pwn 大师,安装相关环境肯定是缺不了的,在这之后,我们就可以创建一个为 CTF 准备的 Python 环境了
5-4-1 uv
找一个合适的目录,使用命令
uv venv /path/to/env # 即存放环境的位置,根据自己的需求更改# uv venv ./CTFpy 这是我的方法
source CTFpy/bin/activate就可以激活虚拟环境
不同的是,uv 并不支持你随时随地都能激活这个环境,你可以向你的 .zshrc 写入自定义脚本来实现加载,可以参考我的
uv-venv() { local VENV_BASE="/home/Lufiende/Environment/mounted/uv-globalvenv" # 更改自己的目录,我将所有可能会常用的通用环境放到了一个目录
if [ -z "$1" ]; then echo "用法: uv-venv <环境名称>" echo "当前可用环境:" ls "$VENV_BASE" return 1 fi
local TARGET_ENV="$VENV_BASE/$1/bin/activate"
if [ ! -f "$TARGET_ENV" ]; then echo "错误: 环境 '$1' 不存在于 $VENV_BASE" return 1 fi
if [ -n "$VIRTUAL_ENV" ]; then echo "正在退出当前环境: $(basename "$VIRTUAL_ENV")..." deactivate fi
source "$TARGET_ENV" echo "已激活环境: $1"}这个时候,你只需要
uv-venv <环境名称>就可以执行目录里的环境了
如果你要在当前环境安装包,请使用 uv pip 来代替 pip
如果你要使用 VS Code 的话,你需要修改一下配置文件的 python.venvPath 来确保你的环境能被搜索到
转到 文件 > 首选项 > 设置 选中远程后搜索 python.venvPath
填入你存放虚拟环境的目录

5-4-2 Pyenv
输入以下指令就可以创建
pyenv virtualenv <版本号> <名称>pyenv local <名称>例如我要创建并激活一个 3.13.7 的 CTFpy 虚拟环境,我就可以

5-4-3 Conda / Miniforge
conda create -n <起个名字> python=3.12conda activate <名字>然后我们修改一下 .zshrc,如果你使用 zsh 的话,末尾添加
conda activate <名字>就可以默认激活对应环境
6. 添加并挂载数据盘(可选)
官方教程:
有时候你可能会运行多个 wsl 发行版,并且会共同使用一些环境和数据,每个系统盘都下载一遍还是有点占空间了,我们可以单独挂载一个数据盘存储一些不是很吃环境的资料
6-1 添加虚拟磁盘
我们可以右键此电脑,点击 管理 进入计算机管理(进入方式不唯一),找到磁盘管理

然后选择更多操作,再选择创建 vhd 选项,就可以进入虚拟磁盘创建页面,填入参数即可创建,可以参考我的

然后我们会看到一个上面有黑条的磁盘跳出来了,我们先分离一下,右键分离,不然会被系统占用

然后我们输入
wsl --mount --vhd "X:\path\to\data.vhdx" --bare即可完成挂载
6-2 持久化挂载
值得一提的是,这个挂载不是永久的,当你重启 WSL 的时候就失去了挂载,因为我们希望虚拟机启动后挂载,其实我们可以使用 Crontab 启动,在某处准备一个脚本,写上
vim /path/to/automount
#!/bin/bash
/mnt/c/WINDOWS/system32/wsl.exe --mount --vhd "X:\path\to\Data.vhdx"随后添加任务
crontab -e
# 打开后添加
@reboot /path/tp/automount重启 WSL 查看挂载情况
wsl --shutdownwsl
# 进入之后lsblk你会看到多出一块 128G 的磁盘,如下图,不过它的名称可能不固定,取决于挂载时机,正常按上文步骤你的磁盘应该是 sde ,但是如果你是先挂载再进入的子系统那么挂载的硬盘位置比系统盘要前,名字也会变成 sdd,但是丝毫不影响,下面操作

6-3 使用 fdisk 进行分区
使用命令行工具 fdisk
# 输入sudo fdisk /dev/sde
# 回显Welcome to fdisk (util-linux 2.41.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.
Device does not contain a recognized partition table.Created a new DOS (MBR) disklabel with disk identifier 0xc148e97b.
Command (m for help): m
Help:
DOS (MBR) a toggle a bootable flag b edit nested BSD disklabel c toggle the dos compatibility flag
Generic d delete a partition F list free unpartitioned space l list known partition types n add a new partition p print the partition table t change a partition type v verify the partition table i print information about a partition e resize a partition T discard (trim) sectors
Misc m print this menu u change display/entry units x extra functionality (experts only)
Script I load disk layout from sfdisk script file O dump disk layout to sfdisk script file
Save & Exit w write table to disk and exit q quit without saving changes
Create a new label g create a new empty GPT partition table G create a new empty SGI (IRIX) partition table o create a new empty MBR (DOS) partition table s create a new empty Sun partition table我们要做的无非就是新建一个 GPT 格式的分区,按下面来就可以
Command (m for help): g# 使用GPT
Created a new GPT disklabel (GUID: 89089BCF-4A99-4839-8857-F96D8A5CA7E6).The device contains 'dos' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.
Command (m for help): n# 新建分区
Partition number (1-128, default 1):First sector (2048-268435422, default 2048):Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-268435422, default 268433407):# 全部回车默认
Created a new partition 1 of type 'Linux filesystem' and of size 128 GiB.
Command (m for help): w# 应用修改这个时候我们就可以看到原来的新加磁盘 sde 多了一个 sde1

最后我们格式化分区为 ext4
sudo mkfs.ext4 /dev/sde16-4 磁盘挂载到目录
我们可以随便创建一个文件夹作为挂载点,一般来说都会再 /mnt 目录下建立一个文件夹
sudo mkdir /path/to/folder# 例如 sudo mkdir /mnt/wsldata由于磁盘名称可能会改变,所以我们需要使用唯一的 UUID 来识别每一个磁盘
lsblk -f你会看到下面的内容

复制 sde1 的 UUID,输入下面的命令
sudo mount UUID=<复制下来> /path/to/folder# 例如 sudo mount UUID=4a1b8e8a-1251-4644-b987-37851976cb97 /mnt/wsldata然后你就可以顺利挂载了,同时上面的命令可以添加到持久化挂载的脚本
