使用 win11 + debian 双系统有挺久了,稍微记一下使用经验。

挂载 win 下的盘

debian13 testing 不必额外安装驱动,输入密码即可挂载 win 下的盘。以下教程是针对 debian12 的。

debian 可以自动识别 win 下的盘,但是是只读模式。这会造成一些麻烦,例如我们想将数据都放到 win 的 D 盘下面,这样就可以只给 debian 分配较小的空间,因此必须能对 win 下的磁盘进行读写,以支持在 debian 下的工作。

若 Windows 没有完全正常关机,而是进入了休眠或者启用了快速启动功能,会导致 Windows 的 NTFS 文件系统处于“不干净”的状态。为此,在 Windows 系统中进行操作:

  • 控制面板 -> 电源选项 -> 更改高级电源设置
  • 在“电源按钮和盖子”下面,将“按下电源按钮时”设置为“关机”
  • 取消勾选“启用快速启动(推荐)”
  • Apply

关机,启动 debian.

查看 Windows D 盘在 debian 系统中的设备名称:

1
sudo fdisk -l

安装 NTFS-3G 驱动:

1
2
sudo apt update
sudo apt install ntfs-3g

创建挂载点:

1
sudo mkdir /media/你的用户名/windows_d

挂载 Windows D 盘:

1
sudo mount -t ntfs-3g 实际的设备名称 /media/你的用户名/windows_d

大功告成。

如果希望每次启动 Debian 时都自动挂载 Windows D 盘,需要编辑 /etc/fstab 文件,在文件末尾添加:

1
实际的设备名称 /media/你的用户名/windows_d ntfs-3g defaults,rw 0 0

中文输入法

Debian 需要手动安装中文输入法(如果你的系统语言选择英文的话)。

这部分直接问 AI 就行了,大部分没什么问题。

GRUB 启动

这部分同样是比较老旧的教程,debian13 testing 并不需要。

我现在有 debian 和 windows 双系统,如何在开机时不启动默认系统,而是让我自己选择?

为了在启动时选择要进入的操作系统,你需要配置你的启动管理器。Debian 使用的启动管理器通常是 GRUB(GRand Unified Bootloader)。下面是详细步骤:

  1. 启动到 Debian 系统

    • 启动计算机并选择进入 Debian 系统。
  2. 更新 GRUB 配置文件

    • 打开一个终端窗口。
    • 以超级用户身份编辑 GRUB 配置文件:

      1
      sudo nano /etc/default/grub
    • 找到并编辑以下配置项:

      • GRUB_TIMEOUT=10
        这行表示 GRUB 菜单显示的时间(以秒为单位),你可以调整为你希望的时间,比如 10 秒。

      • GRUB_DEFAULT=0
        这行表示默认启动的操作系统,设置为 saved 允许你在下次启动时记住上次选择的操作系统。

        1
        GRUB_DEFAULT=saved
      • 添加以下行以启用 GRUB 的保存功能:

        1
        GRUB_SAVEDEFAULT=true
  3. 更新 GRUB

    • 保存文件并退出编辑器(在 nano 中按 Ctrl+X,然后按 Y,最后按 Enter)。
    • 运行以下命令以更新 GRUB 配置:

      1
      sudo update-grub
  4. 重启计算机

    • 重启计算机,你应该会看到 GRUB 菜单,在启动时可以选择进入 Debian 或 Windows 系统。

我的双系统电脑(win + debian)使用了别人制作的 Grub Themes ,现在开机引导很正常。但是由于电脑尺寸和这个第三方 theme 的背景图片不匹配,图片被拉伸了,不美观。怎么办

为了调整 GRUB 主题的背景图片,使其在你的电脑上显示得更美观,你可以尝试以下几种方法:

方法一:更换背景图片

  1. 找到当前 GRUB 主题配置文件

    • GRUB 主题配置文件通常位于 /boot/grub/themes/ 目录下。进入该目录并找到你的主题文件夹。
  2. 找到背景图片文件

    • 进入主题文件夹,找到背景图片文件(通常是 .png.jpg 格式),比如 background.png
  3. 更换背景图片

    • 使用合适分辨率的图片替换当前的背景图片。你可以找到与你屏幕分辨率相匹配的图片,确保不会被拉伸。
    • 将新图片重命名为和原来图片相同的名称,然后替换原图片。
  4. 更新 GRUB

    • 运行以下命令以确保 GRUB 配置更新:

      1
      sudo update-grub

方法二:修改 GRUB 主题配置

  1. 编辑 GRUB 主题配置文件

    • 进入主题文件夹,找到主题的配置文件(通常是 theme.txt 或类似文件)。
    • 使用编辑器打开该文件:

      1
      sudo nano /boot/grub/themes/your-theme-folder/theme.txt
  2. 修改背景图片属性

    • 查找与背景图片相关的配置行,可能类似于 + background_image.png
    • 你可以调整图片的缩放属性,例如设置 stretch(拉伸)为 false 或设置 fit(适应)属性。
    1
    2
    3
    4
    5
    + background_image {
    image = "background.png"
    stretch = false
    fit = true
    }
  3. 保存文件并退出

    • 保存配置文件并退出编辑器。
  4. 更新 GRUB

    • 运行以下命令以确保 GRUB 配置更新:

      1
      sudo update-grub

方法三:手动调整背景图片

  1. 调整背景图片分辨率

    • 如果你有图像编辑工具(如 GIMP 或 Photoshop),你可以手动调整背景图片的分辨率,使其与你的屏幕分辨率匹配。
    • 打开图片,调整其分辨率,并保存为新的图片。
  2. 替换原图片

    • 将新调整的图片替换主题文件夹中的原背景图片。
  3. 更新 GRUB

    • 运行以下命令以确保 GRUB 配置更新:

      1
      sudo update-grub

Zotero

在 debian 上安装 Zotero :
https://github.com/retorquere/zotero-deb

可以使用坚果云同步。

N 卡本地跑深度学习

目前环境:

1
2
3
OS: Debian GNU/Linux 13 (trixie) x86_64
Kernel: Linux 6.12.27-amd64
GPU 1: NVIDIA GeForce RTX 5060 Max-Q / Mobile [Discrete]

安装 linux-headers:

1
sudo apt install linux-headers-amd64

/etc/apt/sources.list 中确保包含 non-free, non-free-firmware.

在 nvidia 官网找到合适的驱动下载 .run 文件,CTRL+ALT+F3 进入文本界面。不进入 tty 模式也可以在普通的 terminal 里面进行,但是可能会出一些问题,结束之后也要重启。在 tty 中(如果是 kde 桌面):

1
sudo systemctl stop sddm

这会停止 KDE 的显示管理器,关闭所有图形会话。

切换为 root 用户运行 .run 文件,安装过程中一般保持默认即可。注意选择开源版本,如果询问 “Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”,选择 No.

debian 官网的教程有些过于老旧,尤其是目前(2025.06.05)对于 debian13 testing 和 5060 这两个都十分新的东西来说。

不出意外,就可以安装好驱动了。nvidia-smi :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Thu Jun  5 12:49:36 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.57.08 Driver Version: 575.57.08 CUDA Version: 12.9 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 5060 ... Off | 00000000:01:00.0 Off | N/A |
| N/A 40C P8 2W / 55W | 18MiB / 8151MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1607 G /usr/lib/xorg/Xorg 4MiB |
+-----------------------------------------------------------------------------------------+

然后按照教程走即可:
https://www.tensorflow.org/install/docker

注意我们需要拉取的镜像是(若有变更按官网为准):

1
docker pull tensorflow/tensorflow:latest-gpu-jupyter

现在运行一个 ipynb 文件来测试。

cd 到 ipynb 文件所在的目录,执行:

1
docker run --gpus all -it --rm -p 8888:8888 -v "$(pwd)":/tf/notebooks tensorflow/tensorflow:latest-gpu-jupyter

命令解析:

  • --gpus all 允许容器访问所有可用的 GPU
  • -it 以交互模式运行容器并分配一个伪 TTY
  • --rm 容器停止后自动删除它(方便清理)
  • -p 8888:8888 将宿主机的 8888 端口映射到容器内的 8888 端口 (Jupyter 通常运行在此端口)
  • -v "$(pwd)":/tf/notebooks 将当前宿主机的工作目录 $(pwd) 挂载到容器内的 /tf/notebooks 目录。这样,在容器内创建或修改的 notebook 文件就会保存在宿主机上,反之亦然

完全可以在浏览器中打开,不过我们还是在 vscode 中打开,右上角选择 Jupyter Server 即可。

目前(2025.06.05)这个架构的 GPU 支持似乎有些问题,再等等吧。 latest 镜像还不能识别到 GPU;老旧一点的镜像可以识别到 GPU,但是似乎无法正确识别 RTX 5060 的 GPU 架构。

upd: 系统内核升级后,驱动可能会掉,需要重新走流程。

卸载残留:

1
sudo sh NVIDIA-Linux-x86_64-XXX.XX.run --uninstall

电池保养

有奇怪苛求的使用者通常会希望笔记本的电池寿命延长一些,这可以通过软件将电池充电上限设为 80% 实现。在 windows 下这样的设置比较简单(例如华硕管家),而在 debian 上同样可以安装相关软件实现,然后设置阈值,重启即可。

先在系统的设置里面找找有没有相关选项,没有再执行下面的操作。

TLP 是一个功能非常强大的 Linux 高级电源管理工具,它不依赖图形界面,通过配置文件工作,设置一次后即可“一劳永逸”。

1
2
sudo apt update
sudo apt install tlp tlp-rdw

tlp-rdw 是用于无线设备的射频开关管理,推荐一并安装。

TLP 的主配置文件位于 /etc/tlp.conf ,sudo vim it.

1
2
3
4
5
6
7
# 设置电池电量低于 75% 时开始充电。
# 默认被注释掉了,需要去掉 '#'
START_CHARGE_THRESH_BAT0=75

# 设置电池电量达到 80% 时停止充电。
# 默认被注释掉了,需要去掉 '#'
STOP_CHARGE_THRESH_BAT0=80

注意:绝大多数笔记本的电池是 BAT0。如果有多个电池或名称不同,可以先运行 tlp-stat -b 查看电池名称,然后将配置中的 BAT0 替换为正确的名称。

运行以下命令来立即应用设置并让 TLP 开机自启:

1
sudo tlp start

外接显示器

在 debian 中安装 nvidia 驱动后,有可能外接显示器无法工作(系统内核更新后掉驱动也会这样)。

笔记本电脑安装完 NVIDIA 驱动后,外接显示器不工作是一个非常典型的问题。根本原因通常与 NVIDIA Optimus 技术(双显卡混合输出)有关。

在大多数 Optimus 笔记本上,内置显示器可能由 Intel 或 AMD 的集成显卡驱动,而 HDMI 或 DisplayPort 等外接端口则物理上连接到了 NVIDIA 的独立显卡。因此,必须确保 NVIDIA 显卡被正确激活并用于处理外部显示输出。

方案一:启用 NVIDIA DRM Kernel Mode Setting (KMS)

编辑 /etc/default/grub, 修改内核启动参数。

找到以 GRUB_CMDLINE_LINUX_DEFAULT= 开头的那一行。在引号内的现有参数后面,添加 nvidia-drm.modeset=1。注意用空格与前面的参数隔开。

例如,如果原来是:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

修改后变成:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"

1
2
sudo update-grub
sudo reboot

方案二:使用 nvidia-settings 图形工具进行诊断和配置

1
sudo nvidia-settings

检查显示配置。
在弹出的窗口左侧,点击 “X Server Display Configuration”。

  • 查看屏幕布局:在这个界面中,您应该能看到笔记本的内置屏幕。如果驱动成功检测到了外接显示器(即使它不亮),它也应该会出现在这里,可能显示为灰色或 “Disabled”。
  • 尝试激活:如果能看到外接显示器,尝试选中它,然后在下方的 “Configuration” 选项中选择 “TwinView” 或 “Separate X screen”,然后点击 “Apply”。
  • 保存配置:如果配置生效了,点击 “Save to X Configuration File”。这通常需要管理员权限,您可能需要以 sudo nvidia-settings 方式重新运行才能成功保存。

偶见的 chrome 问题

某些情况下在 chrome 中无法切换中文输入法。

尽管 Wayland 越来越成熟,但有时特定程序与其仍有兼容性问题。可以尝试强制 Chrome 在 XWayland 兼容模式下运行。

加上参数: --ozone-platform=x11 .

开机密码界面卡死

这同样是双显卡引起的。具体症状:开机后在输入密码界面,输入框卡住,无法输入,光标不会闪烁(一般正常情况是会闪烁的),鼠标可以移动。

具体的方法可以上网搜索一下,前期似乎需要一些准备工作(但是我忘了 qwq),总之,解决之后,如果遇到该问题,进入 tty:

1
sudo systemctl restart sddm