当前位置: 首页 > news >正文

WSL2配置freesurfer

Windows 11 安装 WSL2 Ubuntu 22.04 并迁移到 E 盘

前言

本文详细记录了在 Windows 11 上通过 Microsoft Store 安装 WSL2 Ubuntu 22.04,并将其从默认的 C 盘迁移到 E 盘的完整过程。适合想要节省 C 盘空间或需要将 WSL2 安装到其他磁盘的用户。

环境信息

  • 操作系统: Windows 11 Pro
  • WSL版本: WSL2
  • Linux发行版: Ubuntu 22.04 LTS
  • 迁移目标: C盘 → E盘

第一步:启用 WSL 功能

1.1 通过 PowerShell 启用 WSL

以管理员权限打开 PowerShell,执行以下命令:

# 启用WSL功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

1.2 重启计算机

执行完上述命令后,重启计算机使功能生效。

1.3 设置 WSL2 为默认版本

重启后,再次以管理员权限打开 PowerShell:

# 设置WSL2为默认版本
wsl --set-default-version 2

第二步:从 Microsoft Store 安装 Ubuntu 22.04

2.1 打开 Microsoft Store

  1. 点击开始菜单,搜索 “Microsoft Store”
  2. 打开 Microsoft Store 应用

2.2 搜索并安装 Ubuntu

  1. 在搜索框中输入 “Ubuntu 22.04”
  2. 选择 “Ubuntu 22.04.3 LTS”
  3. 点击"获取"按钮进行安装

2.3 首次启动配置

安装完成后:

  1. 点击"打开"或在开始菜单中找到 Ubuntu
  2. 首次启动会进行初始化配置
  3. 创建用户名和密码
# 示例输出
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: yourusername
New password: 
Retype new password: 
passwd: password updated successfully

第三步:查看 WSL 配置信息

3.1 查看 WSL 版本和状态

# 查看WSL版本
wsl --version# 查看已安装的发行版
wsl --list --verbose# 查看WSL状态
wsl --status

预期输出:

  NAME            STATE           VERSION
* Ubuntu-22.04    Running         2

在这里插入图片描述

3.2 查看 WSL 安装位置

默认情况下,WSL2 安装在以下位置:

C:\Users\[用户名]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_[随机字符]\LocalState\

3.3 查看磁盘使用情况

# 在WSL内查看磁盘使用情况
wsl -d Ubuntu-22.04 df -h# 查看WSL占用的Windows磁盘空间
wsl -d Ubuntu-22.04 du -sh /

第四步:从 C 盘迁移到 E 盘

4.1 创建目标目录

# 创建E盘WSL目录
mkdir E:\WSL\Ubuntu-22.04

4.2 停止 WSL 服务

# 停止所有WSL实例
wsl --shutdown# 确认所有实例已停止
wsl --list --verbose

4.3 导出 Ubuntu 系统

# 导出Ubuntu系统到临时文件
wsl --export Ubuntu-22.04 E:\WSL\Ubuntu-22.04-backup.tar# 查看导出文件大小
dir E:\WSL\Ubuntu-22.04-backup.tar

4.4 注销原有系统

# 注销原有的Ubuntu系统
wsl --unregister Ubuntu-22.04# 确认注销成功
wsl --list --verbose

4.5 导入到新位置

# 导入到E盘新位置
wsl --import Ubuntu-22.04 E:\WSL\Ubuntu-22.04 E:\WSL\Ubuntu-22.04-backup.tar --version 2# 验证导入成功
wsl --list --verbose

预期输出:

  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2

4.6 设置默认用户

由于导入过程会重置默认用户为 root,需要重新设置:

# 方法1:通过Ubuntu配置命令
ubuntu2204.exe config --default-user yourusername# 方法2:通过注册表修改(如果方法1不工作)
# 启动WSL并创建用户配置
wsl -d Ubuntu-22.04 -u yourusername

4.7 清理临时文件

# 删除备份tar文件
del E:\WSL\Ubuntu-22.04-backup.tar

第五步:验证迁移结果

5.1 测试系统功能

# 启动Ubuntu
wsl -d Ubuntu-22.04# 在WSL内测试
whoami
pwd
ls -la

5.2 验证磁盘空间

# 查看磁盘使用情况
df -h
# 查看挂载点
mount | grep ext4

5.3 确认安装位置

检查 E 盘是否包含 WSL 文件:

dir E:\WSL\Ubuntu-22.04

第六步:优化配置

非必须

6.1 创建 WSL 配置文件

C:\Users\[用户名]\.wslconfig 创建配置文件:

[wsl2]
# 限制内存使用
memory=4GB
# 限制CPU核心数
processors=2
# 启用本地主机转发
localhostForwarding=true
# 交换文件大小
swap=1GB
# 交换文件路径
swapfile=E:\\WSL\\swap.vhdx

6.2 重启 WSL 应用配置

wsl --shutdown
wsl -d Ubuntu-22.04

故障排除

常见问题及解决方案

  1. WSL 启动失败

    # 重启WSL服务
    net stop LxssManager
    net start LxssManager
    
  2. 用户权限问题

    # 在WSL内修复用户权限
    sudo usermod -aG sudo yourusername
    
  3. 网络连接问题

    # 重置网络
    wsl --shutdown
    # 重新启动WSL
    

总结

通过以上步骤,我们成功完成了:

  1. ✅ 在 Windows 11 上启用 WSL2 功能
  2. ✅ 从 Microsoft Store 安装 Ubuntu 22.04
  3. ✅ 查看和了解 WSL 配置信息
  4. ✅ 将 WSL2 Ubuntu 从 C 盘迁移到 E 盘
  5. ✅ 验证系统功能正常运行

迁移的优点

  • 节省C盘空间: 避免系统盘空间不足
  • 提高性能: 可以选择更快的磁盘
  • 便于管理: 统一存储位置,便于备份

注意事项

  • 迁移过程中务必确保 WSL 完全停止
  • 建议在迁移前备份重要数据
  • 配置文件路径需要根据实际情况调整

Freesurfer的下载

下载链接

可以使用浏览器或者迅雷下载。
在下载后,将wsl的系统切换到对应的空间中

在这里插入图片描述
在这里插入图片描述
官网的下载说明

解压并移动到指定的路径下。

tar -xzf freesurfer-linux-ubuntu22_amd64-7.4.1.tar.gz
sudo mv freesurfer /usr/local/ 

我记得使用virtual box的虚拟机好像不能使用GPU。使用wsl子系统是可以使用gpu的。

设置启动的环境变量的路径,包括环境的位置,被试的文件夹,和一个设置的脚本吧。

# 编辑.bashrc文件
nano ~/.bashrc# 添加以下内容到文件末尾
export FREESURFER_HOME=/usr/local/freesurfer
export SUBJECTS_DIR=$FREESURFER_HOME/subjects
source $FREESURFER_HOME/SetUpFreeSurfer.sh

验证安装的检查

# 检查FreeSurfer版本
freesurfer --version# 或者检查主要命令是否可用
which recon-all
which mri_convert# 测试基本功能
recon-all -version

许可证文件

如果你还没有许可证文件,需要:

注册获取许可证(免费):

访问:https://surfer.nmr.mgh.harvard.edu/registration.html
填写信息获取 license.txt 文件

将下载的license.txt放到FreeSurfer目录

cp ~/Downloads/license.txt /usr/local/freesurfer/

主要有下面三个功能。

recon-all - 完整的皮层重建
mri_convert - 图像格式转换
freeview - 图像查看器

依赖环境的下载

# 安装FreeSurfer常用依赖
sudo apt install -y \libgomp1 \libglu1-mesa \libxmu6 \libxi6 \libxft2 \libxinerama1 \libxrandr2 \libxss1 \libxcursor1 \libxcomposite1 \libxdamage1 \libxtst6 \libxt6 \libxext6 \libx11-6 \tcsh

解决freeview GUI问题的实用方法

下载并安装VcXsrv(在Windows中)

从 https://sourceforge.net/projects/vcxsrv/ 下载
安装并启动,选择"Multiple windows",勾选"Disable access control"

1qt5 的相关依赖

sudo apt update
sudo apt install -y \qtbase5-dev \qtbase5-dev-tools \libqt5gui5 \libqt5core5a \libqt5widgets5 \libqt5opengl5 \libqt5x11extras5 \qt5-qmake \libqt5svg5-dev

2X11和图形库

sudo apt install -y \libx11-xcb1 \libxcb-glx0-dev \libxcb-keysyms1 \libxcb-image0 \libxcb-shm0 \libxcb-icccm4 \libxcb-sync1 \libxcb-xfixes0 \libxcb-shape0 \libxcb-randr0 \libxcb-render-util0 \libxcb-util1 \libxcb-xinerama0 \libxcb-cursor0 \libxkbcommon-x11-0 \libxkbcommon0 \libgl1-mesa-glx \libglu1-mesa \mesa-utils

3设置环境变量

# 设置Qt和X11环境变量
export QT_QPA_PLATFORM=xcb
export QT_X11_NO_MITSHM=1
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0# 添加到.bashrc
echo "export QT_QPA_PLATFORM=xcb" >> ~/.bashrc
echo "export QT_X11_NO_MITSHM=1" >> ~/.bashrc
echo "export DISPLAY=\$(grep -m 1 nameserver /etc/resolv.conf | awk '{print \$2}'):0.0" >> ~/.bashrc

可视化的freeview

我开始出现了这个问题。

mateng@MTCP:/mnt/e/wsl2$ export DISPLAY=$(cat /etc/resolv.conf | grep
nameserver | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲'):0.0 mateng@M… freeview
This application failed to start because no Qt platform plugin could
be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl,
offscreen, vnc, wayland-egl, wayland, webgl, xcb. Aborted (core
dumped)

测试

source ~/.bashrc# 测试X11连接
sudo apt install x11-apps
xeyes

在这里插入图片描述

在这里插入图片描述
可以成功执行。

补充

recon -all 的过程中
出现了新的未添加的库,可以把问题给ai,询问缺失什么。

sudo apt update
sudo apt install libquadmath0 

recon-all的步骤和参数

进一步学习的视频
FreeSurfer (英字)

资源(ai推荐)

当然可以!以下是 FreeSurfer 的系统学习资源,从入门、安装、使用,到进阶应用(如皮层重建、分区、表面分析、与EEG/MEG集成等)都涵盖:


🧠 一、官方资源

1. 🔗 FreeSurfer 官网

  • 主页:了解项目最新进展和版本
  • 下载地址:Linux/macOS平台支持
  • 安装说明:Installation Guide
  • 快速入门:Getting Started

2. 📚 FreeSurfer Wiki(核心文档)

  • 网址:https://surfer.nmr.mgh.harvard.edu/fswiki

  • 内容包括:

    • recon-all 全自动重建流程详解
    • 各个模块介绍(如 mris_convert, mri_convert, mri_label2vol 等)
    • 常见问题(FAQ)
    • 与 MNE-Python、SPM、FSL 的接口

3. 🧪 官方教程(非常推荐)

  • Tutorials 主页:https://surfer.nmr.mgh.harvard.edu/fswiki/Tutorials

  • 包含以下子教程:

    • recon-all 全流程解读(解剖重建)
    • 皮层厚度、表面积、曲率等分析
    • longitudinal(纵向数据)处理
    • 与 EEG/MEG(MNE)数据联合建模
    • fMRI 表面映射
    • Group analysis

🧪 二、动手实践类资源

1. 🎓 MIT FreeSurfer Course 视频课程

  • 视频(YouTube):FreeSurfer Course Playlist

  • 内容涵盖:

    • FreeSurfer 背景原理
    • BEM建模(与MNE结合)
    • 实际案例讲解

2. 📂 示例数据

  • 官网提供 sample subjects:

    • 包含经典的 bert, sample, fsaverage 等模板
    • 可配合教程实操

📘 三、中文资源推荐

1. 🌐 中文博客 & 教程

  • 知乎关键词搜索:FreeSurfer 安装 / FreeSurfer 教程

  • 示例文章:

    • FreeSurfer的入门指南与安装配置
    • recon-all 使用全解
    • FreeSurfer 与EEG/MEG集成(MNE结合)

2. 📖 相关教材章节

  • 《脑成像数据分析》相关书籍部分介绍 FreeSurfer 处理流程(通常放在结构MRI章节)

🧩 四、与其他工具集成

工具用途结合教程
MNE-PythonEEG/MEG 头模型、源定位MNE 官方文档 + FreeSurfer
BrainstormEEG/MEG GUI工具,支持 FreeSurfer 结构Brainstorm FreeSurfer tutorial
SPMfMRI 分析 + FreeSurfer结构配准SPM 与 FreeSurfer整合

🔁 建议的学习路径(实践型)

  1. 下载安装 FreeSurfer
  2. 使用 recon-all -all -subject test -i T1.nii 对自己的 T1 MRI 做一次完整重建
  3. 学习查看结果:用 freeview 查看 lh.pial, aparc+aseg.mgz
  4. 将处理结果导入 MNE 或 Brainstorm 进行头模型建模
  5. 学习提取皮层厚度、分区平均值等结果进行 group analysis
http://www.lryc.cn/news/581800.html

相关文章:

  • Docker Model Runner Chat
  • 嵌套容器是隐射宿主机的路径而不是容器的路径
  • 深入解析 document.write、innerHTML 和 innerText 的区别
  • 使用PyTorch实现Softmax回归(Mnist手写数字识别)
  • linux下进程之间socket通信c程序例程
  • 6、构建更加丰富的页面
  • Redis--主从复制详解
  • Linux操作系统之文件(五):文件系统(下)
  • 进程终止:exit()与_exit()深度解析
  • 【HarmonyOS】鸿蒙6 CodeGenie AI辅助编程工具详解
  • Linux-磁盘管理
  • electron中的IPC通信
  • python-if结构、三目运算符
  • 用.NET9+Blazor+Semantic Kernel,打造企业级AI知识库和智能体平台——AntSK深度解读
  • ZSGuardian ---AI赋能,新一代研发管理守护平台 -即将上线
  • 【openp2p】 学习4: 纳秒级别的时间同步算法及demo
  • 2025年中AI风暴:多模态突破、具身觉醒与科学新纪元
  • 等保测评-Apache Tomcat中间件
  • WHAT - 依赖管理工具 CocoaPods
  • Linux驱动学习day18(I2C设备ap3216c驱动编写)
  • Next.js面试常问内容详解
  • 深度特征提取在LIDC-IDRI数据集多分类任务中的优化细节
  • 面向对象与面向过程程序设计语言:核心概念、对比分析与应用指南
  • 深度学习篇---Yolov系列
  • rxcpp--基础
  • 【机器学习笔记Ⅰ】2 线性回归模型
  • LeetCode 287. 寻找重复数(不修改数组 + O(1) 空间)
  • Android studio升级AGP需要注意哪些
  • 编程基础:继承
  • Modbus_TCP_V5 新功能