<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>学习日记</title>
	<atom:link href="http://www.learndiary.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.learndiary.com</link>
	<description>正在关注 Linux 、开源、IT 的个人博客。</description>
	<lastBuildDate>Fri, 20 Mar 2026 09:16:14 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.0.21</generator>
	<item>
		<title>视频（2026.03.12~2026.03.19）</title>
		<link>http://www.learndiary.com/2026/03/video-20260312-7/</link>
		<comments>http://www.learndiary.com/2026/03/video-20260312-7/#respond</comments>
		<pubDate>Fri, 20 Mar 2026 09:14:17 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[学习日记小店]]></category>
		<category><![CDATA[视频]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7798</guid>
		<description><![CDATA[2026.03.12~2026.03.19制作的共7个视频及简介 第一： Linux维修案例：根分区满导致的黑 &#8230; <a href="http://www.learndiary.com/2026/03/video-20260312-7/" class="more-link">Continue reading<span class="screen-reader-text"> "视频（2026.03.12~2026.03.19）"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>2026.03.12~2026.03.19制作的共7个视频及简介</p>



<span id="more-7798"></span>



<p><strong>第一：</strong><br> Linux维修案例：根分区满导致的黑屏故障、笔记本安装显卡驱动 https://www.bilibili.com/video/BV1vxcyzTEeL/</p>



<p>一、/根分区满导致的黑屏故障修复<br>
1、ctrl+alt+f3 登录终端<br>
2、df -h 查看磁盘占用<br>
3、du -sh 命令查找系统重要目录空间占用<br>
4、sudo journalctl --vacuum-size==1M 清除日志<br>
5、sudo apt purge libreoffice* 卸载办公软件<br>
6、sudo apt clean 清除包安装缓存</p>



<p>二、笔记本安装显卡驱动<br>
联想拯救者R7000P，AMD CPU和核显，Nvidia RTX 5060 Mobile，Ubuntu 20.04<br>
1、常用诊断命令 nvidia-smi、update-pciids、lspci -knn | grep -A 3 -i 'vga|nvidia|3d'、mokutil --sb-state、ubuntu-drivers devices<br>
2、加入 PPA 驱动仓库<br>
sudo add-apt-repository ppa:graphics-drivers/ppa<br>
ubuntu-drivers devices<br>
sudo apt install nvidia-driver-580-open</p>



<p>三、重启黑屏，进BIOS设为独显直通。</p>



<p><strong>第二：</strong><br> Linux数据恢复避坑：4种我不会接手的数据恢复情形 https://www.bilibili.com/video/BV1gcwnzcEny/</p>



<p>一、高强度加密系统（磁盘硬件加密，移动磁盘管控和网络管控，文件加密）<br>
1、移动磁盘管控和网络管控导致不能dd镜像被删除数据分区到其他电脑<br>
2、加密导致按文件特征恢复失败</p>



<p>二、删除数据后大量写入<br>
在删除数据的相同分区中保存恢复的数据，导致原删除数据被彻底覆盖</p>



<p>三、固态硬盘经过周一的fstrim服务任务<br>
删除数据后，所在的分区执行过fstrim命令</p>



<p>四、删除时间过于久且系统一直运行<br>
系统运行产生的新数据会覆盖被删除的数据</p>



<p><strong>第三：</strong><br> 淘宝Linux维修服务：在翻车边缘徘徊的几次 https://www.bilibili.com/video/BV1CTwtzuEvQ/</p>



<p>前言：今天做分区合并翻车进行中（结果未明），引出我的翻车（几乎）经历分享<br>
一、Linux分区直接 dd 到 Windows 分区被Windows磁盘修复破坏<br>
二、直接格式化 Windows 分区再复制 Linux 分区数据延迟近10分钟Windows才正确识别分区<br>
三、Openeuler 固态硬盘lvm 分区跨机械硬盘扩容失败<br>
四、fsck 修复 vmware Linux虚拟机分区说不清楚的数据丢失</p>



<p><strong>第四：</strong><br> Linux维修实例：把Linux迁移到MacOS（Intel i7 CPU）的PD虚拟机里 https://www.bilibili.com/video/BV1EkwMzCEMr/</p>



<p>把一台Debian 11物理机音乐服务器系统迁移到MacOS（Intel i7 CPU）的PD虚拟机中，设置开机自动启动虚拟机，并自动连接TEAC UD-301 USB声卡。</p>



<p>一、迁移系统<br>
我一般常用dd镜像克隆、bsdtar打包压缩、rsync网络复制的方法。这里选rsync网络复制的方法。<br>
1、创建EFI引导的虚拟机<br>
关键步骤：自定义配置：在进入安装向导前，务必勾选“安装前自定义设置” 。<br>
修改固件类型：在随后打开的配置窗口中，进入 硬件 -&gt; 启动顺序，点击左下角的 高级 按钮。在弹出的窗口中，选择 64位 EFI 选项<br>
2、在Parallels Desktop (PD)启动debian11 live iso<br>
3、rsync 把物理机系统传到虚拟机中并修复引导。<br>
rsync -avAHXr --info=progress2 --no-inc-recursive --ignore-missing-args --numeric-ids /mnt/ root@remote_host_ip:/mnt/</p>



<p>二、解决MacOS开机自动启动虚拟机<br>
1、打开虚拟机配置：首先，启动 Parallels Desktop。在不启动任何虚拟机的情况下，在待配置的虚拟机上，点击菜单栏的 “操作” -&gt; “配置” <br>
2、找到启动设置：在打开的配置窗口顶部，点击 “选项” 选项卡，然后在左侧列表中选择 “启动和关机”<br>
3、选择启动方式：在右侧窗格中，将顶部的启动方式选择为 “自定义”<br>
4、设置自动启动时机（关键步骤）：如果你选择了“自定义”模式，请找到 “自动启动” 菜单，点击并从下拉列表中选择 “当 Mac 启动时” <br>
5、然后，找到下方的 “在 Mac 关闭时” 菜单 。从下拉菜单中，选择 “关闭”</p>



<p>三、解决TEAC UD-301 USB声卡设备索引（index）冲突<br>
1、现象：<br>
虚拟机里连接了TEAC UD-301<br>
虚拟机里dmesg显示：<br>
[  6.205633] snd-usb-audio 1-2:1.0: cannot find the slot for index 0 (range 0-0), error: -16<br>
2、原因：<br>
ALSA 音频系统的设备索引（index）冲突<br>
3、解决方法：<br>
在/etc/modprobe.d/usb-card.conf 中设置：options snd-usb-audio index=-2<br>
表示：让 USB 声卡不要固定占用 index 0，而是让系统自动分配一个空闲的索引号 </p>



<p>四、解决MacOS开机USB声卡自动连接到虚拟机<br>
点击 Mac 屏幕左上角的 “Parallels Desktop” 菜单。<br>
选择 “偏好设置” 。<br>
在偏好设置窗口中，点击顶部的 “外接设备” 图标（或叫“设备”）。<br>
在窗口的列表中，找到并选中 “TEAC UD-301”。<br>
如果列表里还没有这个设备，可以先点击左下角的 “+” 按钮，在弹出的菜单中手动添加它。<br>
在列表中找到你的声卡后，在它右侧的 “连接到” 这一列连接到虚拟机</p>



<p><strong>第五：</strong><br> 3小时装个虚拟机的Ubuntu26.04，还是老司机？ https://www.bilibili.com/video/BV1y9wRzQEog/</p>



<p>一、特性：<br>
Ubuntu 26.04: Release Date and New Features in Resolute Raccoon: https://linuxconfig.org/ubuntu-26-04-release-date-and-new-features-in-resolute-raccoon</p>



<p>二、下载链接：<br>
Ubuntu 26.04 LTS (Resolute Raccoon) Snapshot 4:<br>
https://cdimage.ubuntu.com/releases/26.04/snapshot-4/<br>
Ubuntu 26.04 LTS (Resolute Raccoon) Daily Build:<br>
https://cdimage.ubuntu.com/daily-live/current</p>



<p>三、snapshot-4 版本安装失败<br>
https://cdimage.ubuntu.com/releases/26.04/snapshot-4/ubuntu-26.04-snapshot4-desktop-amd64.iso<br>
在VMWare Workstation、VirtualBox、Virt-Manager 虚拟机中不能进入安装界面，原因未知</p>



<p>四、2026年3月16日的日构建版本安装成功<br>
https://cdimage.ubuntu.com/daily-live/current/resolute-desktop-amd64.iso</p>



<p><strong>第六：</strong><br> 淘宝Linux服务：订单执行过程中硬盘故障跟客户的纠纷 https://www.bilibili.com/video/BV1EhwizdEoK/<br> 一、<br> 背景：ubuntu Linux 分区合并订单执行过程中硬盘故障，导致跟客户的纠纷</p>



<p>二、<br>
1、3月13日晚上在淘宝找到我，准备做分区合并<br>
2、3月14日上午执行订单过程中硬盘故障，重启不能启动，客户要求对硬盘的损坏负责<br>
3、3月14日晚上客户的硬盘又可以挂载查看历史命令，针对命令详细盘问细节<br>
4、3月17日晚上客户申请只退款，事情基本解决。</p>



<p>三、<br>
小结：数据安全，备份第一选择。</p>



<p><strong>第七：</strong><br> Linux小技巧：禁用ipv6解决软件安装问题、解决惠普笔记本显卡驱动致黑屏 https://www.bilibili.com/video/BV1wfwCzSEBR/</p>



<p>一、安装软件网络原因不成功可以试试禁用ipv6<br>
云南客户安装PacketFence的经历</p>



<p>二、hp 笔记本安装 Nvidia 驱动黑屏可以试试下面的/etc/X11/xorg.conf<br>
1、hp victus 笔记本电脑，i7 13代cpu，Nvidia RTX 5060 显卡<br>
2、hp omen 笔记本电脑，i5-9300H cpu，Nvidia RTX 1650 显卡</p>



<p>/etc/X11/xorg.conf</p>



<p>Section "ServerLayout"<br>
  Identifier "layout"<br>
  Screen 0 "nvidia"<br>
  Inactive "intel"<br>
EndSection</p>



<p>Section "Device"<br>
  Identifier "nvidia"<br>
  Driver "nvidia"<br>
  BusID "PCI:1:0:0"<br>
  Option "AllowEmptyInitialConfiguration"<br>
  Option "AllowExternalGpus" "True"<br>
  Option "PrimaryGPU" "Yes"<br>
EndSection</p>



<p>Section "Screen"<br>
  Identifier "nvidia"<br>
  Device "nvidia"<br>
EndSection</p>



<p>Section "Device"<br>
  Identifier "intel"<br>
  Driver "modesetting"<br>
EndSection</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2026/03/video-20260312-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下固态硬盘误删除或格式化数据恢复小结</title>
		<link>http://www.learndiary.com/2026/03/ssd-recovery/</link>
		<comments>http://www.learndiary.com/2026/03/ssd-recovery/#respond</comments>
		<pubDate>Thu, 12 Mar 2026 12:18:29 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[计算机]]></category>
		<category><![CDATA[gc]]></category>
		<category><![CDATA[pc-3000]]></category>
		<category><![CDATA[trim]]></category>
		<category><![CDATA[固态硬盘]]></category>
		<category><![CDATA[垃圾回收]]></category>
		<category><![CDATA[数据恢复]]></category>
		<category><![CDATA[格式化]]></category>
		<category><![CDATA[误删除]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7785</guid>
		<description><![CDATA[讲解视频：【Linux下固态硬盘误删除或格式化数据恢复小结】 https://www.bilibili.com &#8230; <a href="http://www.learndiary.com/2026/03/ssd-recovery/" class="more-link">Continue reading<span class="screen-reader-text"> "Linux下固态硬盘误删除或格式化数据恢复小结"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>讲解视频：【Linux下固态硬盘误删除或格式化数据恢复小结】 https://www.bilibili.com/video/BV1ExwFzpEv4/</p>



<span id="more-7785"></span>



<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=116210893064973&bvid=BV1ExwFzpEv4&cid=36628729020&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="width:100%; height:500px; max-width:100%; align:center; padding:20px 0;"> </iframe>



<p>一、原来写过一篇关于“Linux 下固态硬盘恢复误删除文件”（https://www.learndiary.com/2022/10/linux-ssd-recovery/），现在在此基础有些修正和补充。</p>



<p>二、一些从事数据恢复工作的网友对固态硬盘数据恢复的认识<br>
1、如果早知道…固态硬盘误删也会无法恢复（小飞机DIY，2024-05-25） https://www.bilibili.com/video/BV15i421S7AB/<br>
2、固态硬盘删除格式化到底能不能恢复？第二期（上海数据恢复，2025-12-10）https://www.bilibili.com/video/BV1N8mbBGEYA/ <br>
PC-3000 SSD支持列表 版本3.8.9（2026-2-25）http://www.jundacheng.com/bbs/forum.php?mod=viewthread&amp;tid=6402</p>



<p>三、固态硬盘数据恢复的两大拦路虎<br>
1、操作系统层面的 trim 命令<br>
2、固态硬盘固件的 gc（垃圾回收）机制</p>



<p>四、Linux 误删除数据恢复比 Windows 情况要好一些<br>
常规 Linux 发行版通常是每周执行一次 trim 操作 ，而 Windows 默认是删除数据就执行 trim 操作</p>



<p>五、Linux 格式化分区数据恢复<br>
格式化就相当于把整个分区执行了 trim 操作</p>



<p>六、结论<br>
在 Linux 下面，误删除数据后，没有执行trim操作的不太重要的数据，可以在保证不再写入操作的前提下，尽快用 R-Linux（ext4分区）、R-Studio 等工具进行恢复。<br>
重要数据执行了误删除、已经执行过分区格式化或trim操作的数据，建议立刻强行关机（不用常规关机方法，按住电源键5秒强制关机），并把硬盘送专业数据恢复机构处理（至少应该有pc-3000专业固态硬盘修复工具）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2026/03/ssd-recovery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux维修案例分享：Ubuntu 显卡驱动引起的黑屏故障修复</title>
		<link>http://www.learndiary.com/2026/03/black-fix/</link>
		<comments>http://www.learndiary.com/2026/03/black-fix/#respond</comments>
		<pubDate>Sun, 08 Mar 2026 12:25:24 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[显卡驱动]]></category>
		<category><![CDATA[维修案例]]></category>
		<category><![CDATA[黑屏]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7781</guid>
		<description><![CDATA[讲解视频：【Linux维修案例分享：Ubuntu 显卡驱动引起的黑屏故障修复】 https://www.bil &#8230; <a href="http://www.learndiary.com/2026/03/black-fix/" class="more-link">Continue reading<span class="screen-reader-text"> "Linux维修案例分享：Ubuntu 显卡驱动引起的黑屏故障修复"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>讲解视频：【Linux维修案例分享：Ubuntu 显卡驱动引起的黑屏故障修复】 https://www.bilibili.com/video/BV1hWNgzLEZh/</p>



<span id="more-7781"></span>



<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=116193495156885&bvid=BV1hWNgzLEZh&cid=36553164839&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="width:100%; height:500px; max-width:100%; align:center; padding:20px 0;"> </iframe>



<p>一、背景<br>
今天直播的由来<br>
系统：笔记本电脑，Ubuntu 22.04，Nvidia Rtx 5070 Ti Mobile</p>



<p>二、历史分享<br>
1、混合显卡笔记本Linux系统下的黑屏故障案例解析与解决方案分享 https://www.learndiary.com/2024/03/hybird-graphics/<br>
2、Ubuntu 安装 Nvidia 显卡驱动及常见问题解决 https://www.learndiary.com/2024/01/install-nvidia-driver-in-ubuntu/</p>



<p>三、故障点<br>
1、驱动选择错误<br>
2、不同的驱动版本同时存在于系统中<br>
3、生成 /etc/X11/xorg.conf<br>
4、/etc/default/grub 加入 nomodeset 参数</p>



<p>四、修复过程<br>
1、卸载所有驱动，手工删除残留的驱动文件<br>
2、删除 /etc/X11/xorg.conf<br>
3、去除 /etc/default/grub 中的 nomodeset 参数并 sudo update-grub<br>
4、查看备选驱动 ubuntu-drivers devices 再安装正确的驱动 sudo apt install nvidia-driver-590-open</p>



<p>五、结论<br>
Nvidia Rtx 50 系列显卡要点：<br>
先装 build-essential 和 linux-headers-$(uname -r) 的包<br>
再装带 -open 字样的包或在装 .run 后缀的驱动时选择开源内核</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2026/03/black-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux维修案例：更新内核掉网卡驱动、CentOS 系统迁移、固态硬盘数据恢复</title>
		<link>http://www.learndiary.com/2026/03/fix-20260304/</link>
		<comments>http://www.learndiary.com/2026/03/fix-20260304/#respond</comments>
		<pubDate>Fri, 06 Mar 2026 12:40:46 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[内核]]></category>
		<category><![CDATA[固态硬盘]]></category>
		<category><![CDATA[学习日记小店]]></category>
		<category><![CDATA[数据恢复]]></category>
		<category><![CDATA[系统迁移]]></category>
		<category><![CDATA[驱动]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7754</guid>
		<description><![CDATA[讲解视频：【Linux维修案例：更新内核掉网卡驱动、CentOS 系统迁移、固态硬盘数据恢复】 https:/ &#8230; <a href="http://www.learndiary.com/2026/03/fix-20260304/" class="more-link">Continue reading<span class="screen-reader-text"> "Linux维修案例：更新内核掉网卡驱动、CentOS 系统迁移、固态硬盘数据恢复"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>讲解视频：【Linux维修案例：更新内核掉网卡驱动、CentOS 系统迁移、固态硬盘数据恢复】 https://www.bilibili.com/video/BV1s6P4zyEjx/</p>



<span id="more-7754"></span>



<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=116182220800346&bvid=BV1s6P4zyEjx&cid=36502110463&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="width:100%; height:500px; max-width:100%; align:center; padding:20px 0;"> </iframe>



<p> 一、<br> 升级到新内核掉网卡驱动2例及ACPI硬件复位异常<br> Ubuntu22.04，联想拯救者R9000P，锐龙R9 8945HX，显卡5060，6.8.0-40内核有WiFi，更新内核到6.8.0-90（101）就没wifi，nvidia-driver-590-open 花屏并重启2分钟左右键盘鼠标无反应，nvidia-driver-570-open 重启2分钟左右键盘鼠标无反应，但关机再开机正常。后面查了AI，给出的解决方案是“修改GRUB，强制ACPI进行硬件全复位，grub添加内核参数 reboot=pci”<br> 另一台 ubuntu 24.04电脑，从6.8.0-31内核更新至 6.17.0-14内核，无线有线驱动全部消失。<br> 所以说，更新的内核也可能对一些硬件减少了支持。上面的最快速的临时解决方法就是保持使用旧内核。最靠谱的方法是等待官方推出修复的内核。针对重要的电脑，保持内核更新是必要的，因为可能修复一些安全或功能问题。<br> Ubuntu 设置默认启动内核的方法是在 /etc/default/grub 中，把GRUB_DEFAULT=0 替换成 GRUB_DEFAULT='gnulinux-advanced-4591a659-55e2-4bec-8dbe-d98bd9e489cf>gnulinux-4.15.0-126-generic-advanced-4591a659-55e2-4bec-8dbe-d98bd9e489cf'这样类似的，具体字符串ID在 /boot/grub/grub.cfg 中查找。然后执行 sudo update-grub 更新 grub 菜单。</p>



<p>二、<br>
CentOS 7 迁移卷组名称修改及nvme驱动自动加载<br>
需要在 /etc/default/grub 中手工修改如 “rd.lvm.lv=centos/root rd.lvm.lv=centos/swap”中的卷组（VG）名称，sata 硬盘的系统迁移到 nvme 固态硬盘需要在 initramfs 文件中加载 nvme 驱动模块</p>



<p>三、<br>
Intel 8T 企业 nvme 固态硬盘因固件的激进垃圾回收机制导致数据恢复极不成功<br>
据多个AI判断，这是Linux文件系统的高效通知机制，加上Intel企业级SSD固件为了追求性能和寿命而采取的主动、实时、强力的后台垃圾回收策略，共同导致的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2026/03/fix-20260304/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>银河麒麟桌面版RSYNC备份脚本小结</title>
		<link>http://www.learndiary.com/2026/03/kylin-rsync/</link>
		<comments>http://www.learndiary.com/2026/03/kylin-rsync/#respond</comments>
		<pubDate>Tue, 03 Mar 2026 12:44:14 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[程序]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[备份]]></category>
		<category><![CDATA[小结]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[银河麒麟]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7750</guid>
		<description><![CDATA[讲解视频：【银河麒麟桌面版RSYNC备份脚本小结】 https://www.bilibili.com/vide &#8230; <a href="http://www.learndiary.com/2026/03/kylin-rsync/" class="more-link">Continue reading<span class="screen-reader-text"> "银河麒麟桌面版RSYNC备份脚本小结"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>讲解视频：【银河麒麟桌面版RSYNC备份脚本小结】 https://www.bilibili.com/video/BV1bLPEzfEFZ/</p>



<span id="more-7750"></span>



<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=116159554783899&bvid=BV1bLPEzfEFZ&cid=36400399917&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="width:100%; height:500px; max-width:100%; align:center; padding:20px 0;"> </iframe>



<p>下面一到八是复制的银河麒麟桌面版本备份工具运行时后台脚本。九是备份脚本重点参数学习小结。</p>



<p>一、系统首次备份脚本<br>
/usr/bin/rsync -avAHXr --info=progress2 --no-inc-recursive --ignore-missing-args --delete --exclude=/backup --exclude=/cdrom --exclude=/dev --exclude=/efi --exclude=/etc/uid_list --exclude=/data/ghost --exclude=/ghost --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/swap_file --exclude=/sys --exclude=/tmp --exclude=/var/lib/docker/overlay2 --exclude=/var/lib/kmre/data --exclude=/var/lib/kmre/kmre-<em>-</em>/data/media/0/0-麒麟* --exclude=/var/lib/udisks2 --exclude=/var/log --exclude=*/backup/snapshots --exclude=/data/security-dir --exclude=/data/home --exclude=/data/root / /backup/snapshots/{42a01331-f178-4dff-99af-9531e602f0ff}/data/</p>



<p>二、增量备份<br>
/usr/bin/rsync -avAXr --info=progress2 --no-inc-recursive --ignore-missing-args --link-dest=../../{42a01331-f178-4dff-99af-9531e602f0ff}/data --exclude=/backup --exclude=/cdrom --exclude=/dev --exclude=/efi --exclude=/etc/uid_list --exclude=/data/ghost --exclude=/ghost --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/swap_file --exclude=/sys --exclude=/tmp --exclude=/var/lib/docker/overlay2 --exclude=/var/lib/kmre/data --exclude=/var/lib/kmre/kmre-<em>-</em>/data/media/0/0-麒麟* --exclude=/var/lib/udisks2 --exclude=/var/log --exclude=*/backup/snapshots --exclude=/data/security-dir --exclude=/data/home --exclude=/data/root / /backup/snapshots/{d71066eb-ee49-4aa8-b3d2-c4331a564f42}/data/</p>



<p>三、第二次增量备份<br>
/usr/bin/rsync -avAXr --info=progress2 --no-inc-recursive --ignore-missing-args --link-dest=../../{d71066eb-ee49-4aa8-b3d2-c4331a564f42}/data --exclude=/backup --exclude=/cdrom --exclude=/dev --exclude=/efi --exclude=/etc/uid_list --exclude=/data/ghost --exclude=/ghost --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/swap_file --exclude=/sys --exclude=/tmp --exclude=/var/lib/docker/overlay2 --exclude=/var/lib/kmre/data --exclude=/var/lib/kmre/kmre-<em>-</em>/data/media/0/0-麒麟* --exclude=/var/lib/udisks2 --exclude=/var/log --exclude=*/backup/snapshots --exclude=/data/security-dir --exclude=/data/home --exclude=/data/root / /backup/snapshots/{e5bca24a-4478-4a87-8ea1-bfa82e05a290}/data/</p>



<p>四、恢复系统<br>
/usr/bin/rsync -avAHXr --info=progress2 --no-inc-recursive --ignore-missing-args --delete --exclude=/usr/bin/backup-daemon --exclude=/usr/bin/kybackup --exclude=/usr/bin/mount_fstab_efi --exclude=/usr/bin/backup-auto-efi --exclude=/usr/bin/backup-auto --exclude=/usr/bin/rsync --exclude=/usr/share/rsync --exclude=/usr/share/initramfs-tools/hooks/kybackup-hooks --exclude=/usr/share/initramfs-tools/scripts/<em>/kybackup --exclude=/etc/LICENSE --exclude=/etc/.kyinfo --exclude=/etc/.kyactivation --exclude=/etc/.kyhwid --exclude=/data/security-dir --exclude=</em>/backup/snapshots --exclude=/data/home --exclude=/data/root --exclude-from /backup/snapshots/{c369a040-dcc5-4453-8579-7d5803f84237}/.exclude.user.txt --files-from /backup/snapshots/{c369a040-dcc5-4453-8579-7d5803f84237}/.user.txt /backup/snapshots/{c369a040-dcc5-4453-8579-7d5803f84237}/data/ /</p>



<p>其中，.exclude.user.txt 的内容如下：<br>
/backup<br>
/cdrom<br>
/dev<br>
/efi<br>
/etc/uid_list<br>
/data/ghost<br>
/ghost<br>
/lost+found<br>
/media<br>
/mnt<br>
/proc<br>
/run<br>
/swap_file<br>
/sys<br>
/tmp<br>
/var/lib/docker/overlay2<br>
/var/lib/kmre/data<br>
/var/lib/kmre/kmre-<em>-</em>/data/media/0/0-麒麟*<br>
/var/lib/udisks2<br>
/var/log<br>
*/backup/snapshots<br>
/data/security-dir<br>
/data/home<br>
/data/root</p>



<p>.user.txt 内容如下：<br>
/</p>



<p>五、恢复系统但保留用户数据<br>
/usr/bin/rsync -avAHXr --info=progress2 --no-inc-recursive --ignore-missing-args --delete --exclude=/home --exclude=/root --exclude=/data --exclude=/var/lib/biometric-auth --exclude=/data/sec_storage_data --exclude=/etc/passwd --exclude=/etc/shadow --exclude=/etc/group --exclude=/etc/gshadow --exclude=/etc/sudoers --exclude=/data/home --exclude=/data/root --exclude=/var/lib/AccountsService --exclude=/etc/sssd --exclude=/var/lib/sss --exclude=/usr/share/sssd --exclude=/etc/ipa --exclude=/etc/krb5.keytab --exclude=/etc/krb5.conf --exclude=/var/lib/ipa-client --exclude=/etc/nsswitch.conf --exclude=/etc/pam.d --exclude=/etc/hosts --exclude=/etc/hostname --exclude=/etc/hedron --exclude=/etc/kcm --exclude=/usr/hedron/hedronagent --exclude=/etc/.kyinfo --exclude=/etc/LICENSE --exclude=/etc/ssl/certs --exclude=/usr/share/ca-certificates --exclude=/etc/NetworkManager --exclude=/var/lib/pam --exclude=/usr/share/applications/kylin-os-installer.desktop --exclude=<em>/.local/share/applications/kylin-os-installer.desktop --exclude=/etc/xdg/autostart/kylin-os-installer.desktop --exclude=/usr/bin/backup-daemon --exclude=/usr/bin/kybackup --exclude=/usr/bin/mount_fstab_efi --exclude=/usr/bin/backup-auto-efi --exclude=/usr/bin/backup-auto --exclude=/usr/bin/rsync --exclude=/usr/share/rsync --exclude=/usr/share/initramfs-tools/hooks/kybackup-hooks --exclude=/usr/share/initramfs-tools/scripts/</em>/kybackup --exclude=/etc/LICENSE --exclude=/etc/.kyinfo --exclude=/etc/.kyactivation --exclude=/etc/.kyhwid --exclude=/data/security-dir --exclude=*/backup/snapshots --exclude=/data/home --exclude=/data/root --exclude-from /backup/snapshots/{c369a040-dcc5-4453-8579-7d5803f84237}/.exclude.user.txt --files-from /backup/snapshots/{c369a040-dcc5-4453-8579-7d5803f84237}/.user.txt /backup/snapshots/{c369a040-dcc5-4453-8579-7d5803f84237}/data/ /</p>



<p>六、备份数据<br>
/usr/bin/rsync -avAHXr --info=progress2 --no-inc-recursive --ignore-missing-args --delete --files-from /tmp/.backup.user / /backup/snapshots/{ccfaa3d2-e7df-4177-907a-2cc6e916c8be}/data/</p>



<p>七、恢复数据<br>
/usr/bin/rsync -avAHXr --info=progress2 --no-inc-recursive --ignore-missing-args --delete --files-from /backup/snapshots/{0cf41a3b-4f7a-4ea8-b593-4e5f3c100bf0}/.user.txt /backup/snapshots/{0cf41a3b-4f7a-4ea8-b593-4e5f3c100bf0}/data/ //</p>



<p>八、制作系统镜像<br>
/usr/bin/mksquashfs /backup/snapshots/{b13e8f08-9874-40bb-b51c-141e996ac02e}/data /ghost/kylin-x86_64-251002103348.kyimg</p>



<p>九、重点参数学习<br>
一）、<br>
--no-inc-recursive 不使用增量递归算法，使用传统的内存递归方式，后者能够精确保证硬链接关系的备份和恢复。前者有如下可能性：<br>
 空间浪费：硬链接变成独立文件，占用双倍空间<br>
数据不一致：修改一个文件，另一个不会同步变化<br>
恢复复杂：恢复时需要更多空间，可能无法完全复原源端结构</p>



<p>二）、<br>
--link-dest 的用法 目标文件和参考文件必须在同一个文件系统，参考文件的目录是相对于目标文件的目录，如上面脚本中的 ../../{42a01331-f178-4dff-99af-9531e602f0ff}/data</p>



<p>三）、<br>
增量备份中取消 -H 参数 <br>
AI答案：<br>
在大规模系统备份中，同时使用-H和--link-dest可能导致：<br>
内存消耗增加：硬链接池需要同时跟踪源端和--link-dest的inode信息<br>
性能下降：判断逻辑更复杂<br>
潜在的硬链接关系混乱：在某些边缘情况下，可能错误地合并了本不应合并的硬链接关系<br>
虽然源端如果新增加了硬链接对，增量同步到备份会变成独立的文件，但这是极少数的情况。权衡之下采用了增量备份中取消 -H 参数</p>



<p>四）、<br>
--exclude 参数期望的是相对于源目录的路径</p>



<p>五）、<br>
--files-from 里面的文件列表是相对于源目录的路径，当使用了 -r 参数，文件列表是 / 的话，会同步源目录的所有文件。如果没有 -r 参数，即使加了默认含 -r 参数的 -a 参数，则只会同步源目录下的一级目录名或文件。</p>



<p>六）、<br>
在同时应用 --include 和 --exclude 时，如果一个文件先定义在哪个规则里面，那个规则就生效，即使后面的规则能够匹配到这个文件也不起作用了。这就是“第一匹配规则”。</p>



<p>七）、<br>
--exclude-from 和 --files-from 同时定义了文件谁生效？<br>
--exclude-from 优先生效，--files-from 定义了需要处理的文件列表，列表之外的文件不会处理，也不会传输。</p>



<p>八）、<br>
--include-from 和 --files-from 有什么区别？<br>
--include-from 根据模式匹配要传输的文件，处理的文件范围默认是所有文件。</p>



<p>九）、<br>
稀疏文件属性保留，加 -S（即--sparse），这个选项与 --inplace（就地更新，默认是从源同步的文件同步到新建的临时文件，传输完成再替换目的地原文件） 冲突。</p>



<p>十）、<br>
rsync 运行时有3个命令相同的进程协同完成数据同步任务。</p>



<p>十一）、<br>
不同版本 rsync 的表现可能会有差异，实际应用前应该测试。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2026/03/kylin-rsync/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deepin国产系统搭建B站桌面直播环境要点</title>
		<link>http://www.learndiary.com/2026/03/bilibili-live/</link>
		<comments>http://www.learndiary.com/2026/03/bilibili-live/#respond</comments>
		<pubDate>Tue, 03 Mar 2026 12:36:44 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[程序]]></category>
		<category><![CDATA[bilibili]]></category>
		<category><![CDATA[obs]]></category>
		<category><![CDATA[直播]]></category>
		<category><![CDATA[直播姬]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7728</guid>
		<description><![CDATA[视频讲解：【Deepin国产系统搭建B站桌面直播环境要点】 https://www.bilibili.com/ &#8230; <a href="http://www.learndiary.com/2026/03/bilibili-live/" class="more-link">Continue reading<span class="screen-reader-text"> "Deepin国产系统搭建B站桌面直播环境要点"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>视频讲解：【Deepin国产系统搭建B站桌面直播环境要点】 https://www.bilibili.com/video/BV19Vf2BKE8C/</p>



<span id="more-7728"></span>



<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=116126050684023&bvid=BV19Vf2BKE8C&cid=36261202782&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="width:100%; height:500px; max-width:100%; align:center; padding:20px 0;"> </iframe>



<p>一、音频实时降噪及音效修正<br>
使用easyeffects做音频实时降噪及音效修正，但 apt 安装的缺失依赖，不能正常工作，安装 flatpak 版本的easyeffects解决。参见：[Bug反馈] deepin 25 linux apt 安装的 easyeffects 缺少依赖不能正常工作 https://bbs.deepin.org/zh/post/295876</p>



<p>二、可以用Deepin Linux 仓库里的“统信Windows应用兼容引擎”安装windows版的“哔哩哔哩直播姬”<br>
发现“统信Windows应用兼容引擎”已经收录了“哔哩哔哩直播姬”，直接安装。但安装后启动失败，报告“显卡加载出错”，可能与我的 Nvidia P106-100 矿卡有关。在“统信Windows应用兼容引擎”对程序进行“高级调试”，在“基础配置”中修改“WineD3D 渲染方式”为vulkan，关闭“独显优先”就能正常启动“直播姬”了。但在我的环境下不能正常操作中间的“常规直播”，但可以正常使用“第三方推流”。</p>



<p>另外，直接使用 deepin-wine10-stable 安装的“直播姬”也可以推流，但是直播发言输入框中输入中文显示成乱码，发出去后是正常的。</p>



<p>三、OBS直播软件设置<br>
B站要求粉丝数量达到5000才能直接用 obs 推流到 B 站，否则只能通过推到电脑里安装的B站直播姬软件，再由直播姬转发到B站。我最先的方法是推流到Windows 11 虚拟机安装的直播姬软件，但比较费资源。现在是推流到“统信Windows应用兼容引擎”安装windows版的“哔哩哔哩直播姬”。<br>
另外有两点要注意：<br>
1、音频来源设为“音频输入采集(PulseAudio)”时，音频有明显的爆音。只有把音频来源设为“音频采集设备(ALSA)”才没有爆音。参见：[Bug反馈] OBS Studio音频来源设为“音频输入采集(PulseAudio)”时有爆音 https://bbs.deepin.org/zh/post/295863<br>
2、“设置”-&gt;“音频”里要禁用“桌面音频”，否则接收桌面音频的同时，桌面音频传到麦克风，麦克风的声音也被接收，会造成重音。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2026/03/bilibili-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux、Windows双系统根分区扩容要点</title>
		<link>http://www.learndiary.com/2026/03/double-sys-root-extend/</link>
		<comments>http://www.learndiary.com/2026/03/double-sys-root-extend/#respond</comments>
		<pubDate>Tue, 03 Mar 2026 12:29:08 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[扩容]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7716</guid>
		<description><![CDATA[视频讲解：【Linux、Windows双系统根分区扩容要点】 https://www.bilibili.com &#8230; <a href="http://www.learndiary.com/2026/03/double-sys-root-extend/" class="more-link">Continue reading<span class="screen-reader-text"> "Linux、Windows双系统根分区扩容要点"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>视频讲解：【Linux、Windows双系统根分区扩容要点】 https://www.bilibili.com/video/BV1MbfABTEHw/</p>



<span id="more-7716"></span>



<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=116114793169543&bvid=BV1MbfABTEHw&cid=36219129646&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="width:100%; height:500px; max-width:100%; align:center; padding:20px 0;"> </iframe>



<p>一、备份全盘重要数据，至少备份会动到分区的重要数据。尽量在windows下腾出扩容所需要空间。<br>
我曾经在Linux下用dd直接把Linux分区克隆到 windows 分区，被Windows自动修复引起克隆的Linux分区损坏的情况。或者直接在Linux下格式化windows分区成ext4格式，然后把Linux分区内容复制进里面，进windows系统仍被识别成windows分区，过了近10分钟才被Windows系统正确识别的情况。</p>



<p>二、建议使用 Linux 版本 live usb 或 live cd 在 live 系统下用 gparted 进行分区扩容。</p>



<p>三、扩容分向后扩容（非常快速）、向前扩容（比较慢）、把/根分区多余的数据迁移到新建的其它分区。</p>



<p>四、在运行的 Linux 系统中也可以执行扩容。向前扩容时可以把/根分区内容先克隆到前面的新分区，再chroot到新分区中修复 fstab 挂载列表和grub 引导。</p>



<p>五、扩容期间不能异常断电、关机，尤其是在 live 系统中用 gparted 做向前扩容的时候，异常中断会导致分区损坏和数据丢失。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2026/03/double-sys-root-extend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>视频（2026.01.25~2026.02.16）</title>
		<link>http://www.learndiary.com/2026/02/video-2026012520260216/</link>
		<comments>http://www.learndiary.com/2026/02/video-2026012520260216/#respond</comments>
		<pubDate>Wed, 18 Feb 2026 04:23:55 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[视频]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7710</guid>
		<description><![CDATA[2026.01.25~2026.02.16制作的共11个视频及简介 第一： 嵌入式Linux系统天准GEACX &#8230; <a href="http://www.learndiary.com/2026/02/video-2026012520260216/" class="more-link">Continue reading<span class="screen-reader-text"> "视频（2026.01.25~2026.02.16）"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>2026.01.25~2026.02.16制作的共11个视频及简介</p>



<span id="more-7710"></span>



<p><strong>第一：</strong><br> 嵌入式Linux系统天准GEACX1-64G踩坑记 <a href="https://www.bilibili.com/video/BV1fRzSBTE5G/">https://www.bilibili.com/video/BV1fRzSBTE5G/</a><br> 本视频分享了使用标准 Ubuntu 桌面系统的方式操作基于 NVIDIA 技术的天准 GEACX1-64G嵌入式设备桌面系统，从而引发黑屏故障的踩坑历程。sudo systemctl set-default multi-user 导致系统不能启动。</p>



<p><strong>第二：</strong><br> Windows、Linux双系统安装避坑指南 <a href="https://www.bilibili.com/video/BV17Jz9B2EyD/">https://www.bilibili.com/video/BV17Jz9B2EyD/</a><br> 本视频简要介绍了Linux 新手安装 Windows 和 Linux 双系统时应该注意的一些问题。<br> 1、分区操作先备份重要数据，优先选用在 Windows “磁盘管理”中为 Linux 系统压缩出空间<br> 2、共享 Windows 的 EFI 分区而不是再单独分另一个 EFI 分区<br> 3、一般用户建议就单独1个/分区，或再加1个/home或你特定的数据分区（如 /opt），而不是无意义的使用多个分区（如：/boot、/usr、/var、/tmp 等）<br> 4、使用交换文件而不是交换分区，使用挂起（待机）而不是休眠</p>



<p><strong>第三：</strong><br> Windows、Linux双系统安装之分区调整的4个方法 <a href="https://www.bilibili.com/video/BV1ur6zBFEhA/">https://www.bilibili.com/video/BV1ur6zBFEhA/</a><br> 在 Windows、Linux 双系统安装中调整分区可以用Windows自带的“磁盘管理”工具、Windows下的第三方工具如 DiskGenius、Linux 安装程序自带工具及Linux下的专门分区工具如 Gparted，建议优先使用Windows下自带的“磁盘管理”调整Windows分区。分区操作有危险，建议备份重要数据。</p>



<p><strong>第四：</strong><br> Windows、Linux双系统安装之Windows恢复分区迁移 <a href="https://www.bilibili.com/video/BV1mu6nBMEqw/">https://www.bilibili.com/video/BV1mu6nBMEqw/</a><br> 一、磁盘管理器中分出新恢复分区，用普通NTFS格式并分配盘符<br> 二、DiskGenius 备份原恢复分区<br> 三、DiskGenius 克隆原恢复分区到新分区<br> 四、DiskGenius 重命名原恢复分区文件夹Recovery<br> 五、CMD 管理员终端启用新恢复分区<br> 1、reagentc /setreimage /path 新恢复分区盘符:\Recovery\WindowsRE\Winre.wim<br> 2、reagentc /enable<br> 3、reagentc /info<br> 六、DiskGenius 中设置新恢复分区属性：恢复分区、取消盘符、OEM，保存<br> 七、取消新恢复分区盘符<br> 八、reagentc /boottore 设置重启后进恢复模式测试<br> 九、如果只是单纯前后移动和扩大缩小恢复分区，我测试过 DiskGenius 直接操作就行，不用再重新修复启用<br> 十、删除原恢复分区<br> 十一、再重启测试一下</p>



<p><strong>第五：</strong><br> Windows、Linux双系统安装之EFI分区大小、个数、位置 <a href="https://www.bilibili.com/video/BV1TsFTzJENt/">https://www.bilibili.com/video/BV1TsFTzJENt/</a><br> 一、Ubuntu Linux EFI 分区大小推荐 512M~1G<br> <a href="https://canonical-subiquity.readthedocs-hosted.com/en/latest/howto/configure-storage.html">https://canonical-subiquity.readthedocs-hosted.com/en/latest/howto/configure-storage.html</a><br> 在 UEFI 模式下，引导加载程序从“EFI 系统分区”（ESP）加载，ESP 是一个具有特定 GUID 类型的分区。当磁盘被选为启动设备时，安装程序会自动在磁盘上创建一个 ESP（最小大小为 538 MiB），并将 GRUB 安装到该分区中（只有当磁盘具有 ESP 时，才能将其用作启动设备——多个操作系统的引导加载程序可以安装到同一个 ESP 中）。</p>



<p>二、如果 Ubuntu 安装在单独的一块硬盘，可以在这块硬盘建立单独的 EFI 分区</p>



<p>三、EFI 分区可以在硬盘的任何位置，如末尾</p>



<p><strong>第六：</strong><br> Nvidia Tesla P100 PCIe 16GB 显卡在 Intel Xeon E3 平台的踩坑记 <a href="https://www.bilibili.com/video/BV1SmffBhEN9/">https://www.bilibili.com/video/BV1SmffBhEN9/</a><br> 一、<br> Ubuntu 24.04、Nvidia Tesla P100 PCIe 16GB<br> BIOS中有Above 4G decoding 选项<br> user@host:~$ lspci -knn | grep -A 3 -i "vga|nvidia|3d"<br> 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0152] (rev 09) <br> DeviceName: Onboard IGD <br> Subsystem: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:2010] </p>



<p>Kernel driver in use: i915 </p>



<p>01:00.0 3D controller [0302]: NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB] [10de:15f8] (rev a1) <br>
Subsystem: NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB] [10de:118f] <br>
Kernel driver in use: nvidia <br>
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia</p>



<p>nvidia-smi 显示：no device found.</p>



<p>user@host:~$ lspci -vv -s 01:00.0 | egrep -i "Region|Memory|BAR"<br>
Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=16M]<br>
没有任何 Region 1 (BAR1)。</p>



<p>二、<br>
结论（明确、确定）</p>



<p>你的主板/平台无法为 Tesla P100 分配 BAR1 大显存窗口<br>
这是硬件/BIOS 层面的限制<br>
Linux、驱动、内核、参数已经无解</p>



<p>为什么这条信息是“判死刑级证据”？</p>



<p>Tesla P100 PCIe 16GB 的最低要求：</p>



<p>BAR    需求<br> BAR0    16MB（控制寄存器）<br> BAR1    16 GB (Compute) 或者 256 MB (Graphics)（CPU 映射显存窗口）（<a href="https://www.nvidia.cn/content/dam/en-zz/Solutions/Data-Center/tesla-product-literature/NV-tesla-p100-pcie-PB-08248-001-v01.pdf">https://www.nvidia.cn/content/dam/en-zz/Solutions/Data-Center/tesla-product-literature/NV-tesla-p100-pcie-PB-08248-001-v01.pdf</a>）</p>



<p>这不是 Ubuntu / 驱动 / CUDA 的问题</p>



<p>你已经验证过：</p>



<p>Ubuntu 24.04 </p>



<p>Ubuntu 22.04 内核 </p>



<p>驱动 535 </p>



<p>kernel 参数 </p>



<p>pci=realloc </p>



<p>Above4G Enabled </p>



<p>全部失败。</p>



<p>说明：</p>



<p>BIOS 没实现 64bit PCI MMIO window</p>



<p>为什么 Xeon E3 平台最容易中招？</p>



<p>你这个平台典型特征：</p>



<p>项目<br>
消费级芯片组<br>
32bit PCI MMIO 设计<br>
给游戏显卡优化<br>
不给 Tesla/Quadro 大 BAR</p>



<p>Tesla P100 属于：</p>



<p>服务器级 GPU，需要 workstation/server BIOS</p>



<p>三、<br>
典型“必炸 BAR”主板芯片组<br>
高危区（P100 / V100 基本必翻车）<br>
芯片组    平台<br>
C216    Xeon E3 v1/v2<br>
C226    Xeon E3 v3/v4<br>
B85    商用主板<br>
H81/H87/Z87    桌面<br>
Q87    商务</p>



<p>时间段：</p>



<p>2012–2016 年</p>



<p>这时期：</p>



<p>没有正式服务器 BAR 空间规范</p>



<p>BIOS 32bit PCI MMIO 设计</p>



<p>不支持 Large BAR</p>



<p>没考虑 HBM 卡</p>



<p>四、<br>
推荐方案：换主板平台</p>



<p>最低要求：</p>



<p>推荐<br>
支持E5的Supermicro X10/X11 主板<br>
C612/C621 服务器芯片组<br>
Xeon E5 v3/v4 Intel 在 2014–2016 年推出的服务器/工作站级多核处理器平台<br>
EPYC AMD 的服务器级 CPU 平台</p>



<p><strong>第七：</strong><br> Linux 下数据恢复和分区操作慎用AI!!! <a href="https://www.bilibili.com/video/BV1zsFkzKE2n/">https://www.bilibili.com/video/BV1zsFkzKE2n/</a></p>



<p><strong>第八：</strong><br> Ubuntu Linux 离线安装 Nvidia 显卡驱动 <a href="https://www.bilibili.com/video/BV1ZPcwzHE3x/">https://www.bilibili.com/video/BV1ZPcwzHE3x/</a><br> 以 Ubuntu 22.04 Server 版本安装 A100 算力卡驱动为例：<br> 一、离线错误安装 deb 包导致依赖错误，无法进一步安装 deb 包<br> 二、在虚拟机上断网安装同版本的 Ubuntu 22.04，查看版本信息：cat /etc/<em>release</em> <br> 三、在虚拟机上执行 sudo apt update 更新软件仓库包信息<br> 四、apt install nvidia-driver-580-server -s 模拟安装，查看驱动具体版本为：580.126.09，nvidia 官网查看驱动是否支持 A100（ <a href="https://download.nvidia.com/XFree86/Linux-x86_64/580.126.09/README/supportedchips.html">https://download.nvidia.com/XFree86/Linux-x86_64/580.126.09/README/supportedchips.html</a> ）<br> 五、<br> a）、方法一：apt-get install --print-uris build-essential linux-headers-$(uname -r) nvidia-driver-580-server | grep -o "http[^']*" 得到全部deb安装包的链接，下载后 sudo dpkg -i *.deb 安装就行了。<br> b）、方法二：只下载不安装 sudo apt-get install --download-only build-essential linux-headers-$(uname -r) nvidia-driver-580-server ，下载的文件会存放在 /var/cache/apt/archives/</p>



<p><strong>第九：</strong><br> 以Linux为例介绍一款简单易用的全盘备份Windows、Linux、Mac等系统的Windows工具 HDDRawCopy <a href="https://www.bilibili.com/video/BV1GdcizyE2n/">https://www.bilibili.com/video/BV1GdcizyE2n/</a><br> 一、系统整体备份支持磁盘整体备份、分区备份、文件级整体备份。磁盘或分区备份时目的磁盘不得小于源磁盘。文件级备份恢复，只要新磁盘的空间能容纳下所有文件就行。</p>



<p>二、文件级备份参见：用 bsdtar 做 Linux 全系统迁移（<a href="https://www.learndiary.com/2024/03/migrate-linux-with-bsdtar/">https://www.learndiary.com/2024/03/migrate-linux-with-bsdtar/</a>），这里只讲磁盘整体备份。</p>



<p>三、磁盘整体备份，Linux 下有再生龙（Clonezilla）、dd、ddrescue 等可以完成任务。Windows下常见的备份工具：DiskGenius免费版、傲梅分区助手、Ghost均不能完成把硬盘备份成镜像文件的功能。DiskGenius免费版、傲梅分区助手可以完成逐扇区克隆硬盘的功能，Ghost不可以。</p>



<p>四、HDDRawCopy 可以克隆硬盘、把硬盘备份成原始镜像文件或压缩镜像文件，并可以把镜像文件恢复到容量大于或等于源盘的新磁盘中。网址：<a href="https://hddguru.com/software/HDD-Raw-Copy-Tool/">https://hddguru.com/software/HDD-Raw-Copy-Tool/</a></p>



<p><strong>第十：</strong><br> 想用Ghost整盘迁移备份Linux系统的不用折腾了，我都帮你代劳了 <a href="https://www.bilibili.com/video/BV1CbcpzREqM/">https://www.bilibili.com/video/BV1CbcpzREqM/</a><br> 本视频演示了2022年版的Ghost 12.0.0.11436和2013年版的Ghost 12.0.0.6277 两个版本磁盘克隆Ubuntu 24.04 Server 版的过程， Ubuntu 是bios boot + gpt + lvm + ext4。两个Ghost版本均测试了Default、Image All、Image Boot、Image Disk 四种镜像模式。结果无一例外是失败。</p>



<p>在视频之外，我还用上面的方法测试了源盘克隆到镜像文件再从镜像文件恢复到目的盘，结果仍然是全部失败。</p>



<p>所以，我建议大家放弃尝试使用古老的 Ghost 进行整盘迁移备份Linux系统了。也许，在某些情形下会有成功的情况，但真的没必要折腾这个了。</p>



<p>Linux 下的全盘备份迁移可以用再生龙（Clonezilla）、dd、ddrescue 等，Windows 下可以用我上篇介绍的 HDDRawCopy（<a href="https://www.bilibili.com/video/BV1GdcizyE2n/">https://www.bilibili.com/video/BV1GdcizyE2n/</a>）。</p>



<p><strong>第十一：</strong><br> Sox视频去除背景噪声，Linux命令行工具真不错 <a href="https://www.bilibili.com/video/BV1hFZTBUENt/">https://www.bilibili.com/video/BV1hFZTBUENt/</a><br> 一、<br> USB麦克风，隔了一段时间后背景噪声用 deepin 25 声音设置的“噪音抑制”不管用了，恢复成原来的 deepin 20.9 和 deepin 23同样不管用，也用 ubuntu 24.04 测试了，把路由器拿开什么的也试了。</p>



<p>二、<br>
NoiseTorch、NoiseTorch-ng、EasyEffects 这三个实时降噪和Audacity后期处理均没搞定（后来搞定了Audacity降噪，视频最后有演示）</p>



<p>三、<br>
sudo apt update; sudo apt install ffmpeg sox libsox-fmt-all -y # 安装<br>
ffmpeg -y -ss 1 -i test.mp4 -t 3 noise.wav # 截取3秒噪声样本 <br>
sox noise.wav -n noiseprof noise.prof # 生成噪声模型<br>
ffmpeg -y -ss 5 -i test.mp4 -c copy test_1.mp4 # 去除开头5秒噪声<br>
ffmpeg -y -i test_1.mp4 test_1.wav # 提取声音<br>
sox test_1.wav test_2.wav noisered noise.prof 0.16 # 去噪<br>
ffmpeg -y -i test_1.mp4 -i test_2.wav -map 0:0 -map 1:0 -c copy test_2.mp4 # 合并视频流和去噪音频流</p>



<p>四、<br> 除了截取加速片断、字幕手工纠错、封面制作，其他的都由命令行脚本完成。如：sox去噪、ffmpeg加速、whisper-ctranslate2音频转字幕等。另参见：《Linux技术内容创作实战：从视频制作到文章生成的高效流程分享》<a href="https://www.learndiary.com/2024/04/speed-video-blog-making/">https://www.learndiary.com/2024/04/speed-video-blog-making/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2026/02/video-2026012520260216/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>exawind 安装要点</title>
		<link>http://www.learndiary.com/2025/09/exawind/</link>
		<comments>http://www.learndiary.com/2025/09/exawind/#respond</comments>
		<pubDate>Sun, 21 Sep 2025 09:23:35 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[程序]]></category>
		<category><![CDATA[exawind]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7686</guid>
		<description><![CDATA[前段时间帮人安装了 exawind（ https://github.com/Exawind/exawind-d &#8230; <a href="http://www.learndiary.com/2025/09/exawind/" class="more-link">Continue reading<span class="screen-reader-text"> "exawind 安装要点"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>前段时间帮人安装了 exawind（ https://github.com/Exawind/exawind-driver ），一套风能模拟的程序，非常的难搞。分别在在一台 virt-manager 中的 Ubuntu 20.04、NVIDIA P106-100 和物理机 Ubuntu 24.04、NVIDIA RTX 4060Ti 成功安装 exawind、nalu-wind、amr-wind套件，3个都有 cuda 支持，后2个有 openfast 支持。事先声明，我对这套专业软件完全不懂，只是应人要求进行了一番折腾。下面总结一下安装过程中的要点备忘。</p>



<span id="more-7686"></span>



<p>先说一下安装上述套件成功的命令，其中 Ubuntu 20.04 在2025年2月底和5月底各测试了一次，两次的软件版本是不同的，第一条命令后跟了两次用 spack find 显示出的软件包集合：</p>



<pre class="wp-block-code"><code># virt-manager 中的 Ubuntu 20.04、NVIDIA P106-100 
spack install --keep-stage --dont-restage exawind@master%gcc@=9.4.0+amr_wind_gpu+nalu_wind_gpu+cuda cuda_arch=61 build_type=Debug ^cuda@12.5 ^nalu-wind@master%gcc@9.4.0~boost~catalyst+cuda~fftw+fsi~gpu-aware-mpi+hypre~ipo+openfast+pic~rocm~shared+tests+tioga~trilinos-solvers~umpire~wind-utils ^amr-wind@main%gcc@=9.4.0~ascent+cuda~fft~gpu-aware-mpi+hdf5~helics+hypre~ipo~masa+mpi+netcdf+openfast~openmp~rocm~shared~sycl+tests+tiny_profile~umpire~waves2amr ^openfast@master ^trilinos@master 2>&amp;1 | tee -a install.txt 

# 2025年2月底的软件包集合
littlebat@ub20:~$ spack find
-- linux-ubuntu20.04-haswell / gcc@9.4.0 ------------------------
amr-wind@main                       gettext@0.23.1              libxcrypt@4.4.35  parallel-netcdf@1.14.0
autoconf@2.72                       glibc@2.31                  libxml2@2.13.5    parmetis@4.0.3
automake@1.16.5                     gmake@4.4.1                 lz4@1.10.0        perl@5.40.0
berkeley-db@18.1.40                 hdf5@1.14.5                 m4@1.4.19         pigz@2.8
bison@3.8.2                         hwloc@2.11.1                matio@1.5.26      pkgconf@2.3.0
bzip2@1.0.8                         hypre@2.32.0                metis@5.1.0       pmix@5.0.5
c-blosc@1.21.5                      kokkos@4.5.01               nalu-wind@master  readline@8.2
ca-certificates-mozilla@2023-05-30  kokkos-kernels@4.5.01       nccmp@1.9.1.0     snappy@1.2.1
cgns@4.5.0                          kokkos-nvcc-wrapper@4.5.01  ncurses@6.5       tar@1.35
cmake@3.31.5                        krb5@1.21.3                 netcdf-c@4.9.2    tioga@1.2.0
cuda@12.5                           libaec@1.0.6                nghttp2@1.64.0    trilinos@master
curl@8.11.1                         libedit@3.1-20240808        numactl@2.0.18    util-macros@1.20.1
diffutils@3.10                      libevent@2.1.12             openblas@0.3.29   xz@5.4.6
exawind@master                      libiconv@1.17               openfast@master   yaml-cpp@0.6.3
findutils@4.10.0                    libpciaccess@0.17           openmpi@5.0.6     zlib-ng@2.2.3
gcc-runtime@9.4.0                   libsigsegv@2.14             openssh@9.9p1     zstd@1.5.6
gdbm@1.23                           libtool@2.4.7               openssl@3.4.0
==> 67 installed packages

# 2025年5月底的软件包集合
littlebat@ub20:~$ spack find 
-- linux-ubuntu20.04-haswell / gcc@9.4.0 ------------------------
amr-wind@main                       glibc@2.31                  libxml2@2.13.5          perl@5.40.0
autoconf@2.72                       gmake@4.4.1                 lz4@1.10.0              pigz@2.8
automake@1.16.5                     h5z-zfp@1.1.1               m4@1.4.19               pkgconf@2.3.0
berkeley-db@18.1.40                 hdf5@1.14.5                 matio@1.5.26            pmix@5.0.5
bison@3.8.2                         hwloc@2.11.1                metis@5.1.0             readline@8.2
bzip2@1.0.8                         hypre@2.32.0                nalu-wind@master        snappy@1.2.1
c-blosc@1.21.5                      kokkos@4.6.01               nccmp@1.9.1.0           tar@1.35
ca-certificates-mozilla@2023-05-30  kokkos-kernels@4.6.01       ncurses@6.5             tioga@1.2.0
cgns@4.5.0                          kokkos-nvcc-wrapper@4.5.01  netcdf-c@4.9.2          trilinos@master
cmake@3.31.5                        krb5@1.21.3                 nghttp2@1.64.0          util-macros@1.20.1
cuda@12.5                           libaec@1.0.6                numactl@2.0.18          xz@5.4.6
curl@8.11.1                         libedit@3.1-20240808        openblas@0.3.29         yaml-cpp@0.6.3
diffutils@3.10                      libevent@2.1.12             openfast@master         zfp@1.0.0
exawind@master                      libiconv@1.17               openmpi@5.0.6           zlib-ng@2.2.3
findutils@4.10.0                    libpciaccess@0.17           openssh@9.9p1           zstd@1.5.6
gcc-runtime@9.4.0                   libsigsegv@2.14             openssl@3.4.0
gdbm@1.23                           libtool@2.4.7               parallel-netcdf@1.14.0
gettext@0.23.1                      libxcrypt@4.4.35            parmetis@4.0.3
==> 69 installed packages

# 物理机 Ubuntu 24.04、NVIDIA RTX 4060Ti
spack install --keep-stage --dont-restage exawind@master%gcc@=9.5.0+amr_wind_gpu+nalu_wind_gpu+cuda cuda_arch=89 build_type=Release ^cuda@12.5 ^nalu-wind@master%gcc@9.5.0~boost~catalyst+cuda~fftw~gpu-aware-mpi+hypre~ipo+openfast+pic~rocm~shared+tests+tioga~trilinos-solvers~umpire~wind-utils ^amr-wind@main%gcc@=9.5.0~ascent+cuda~fft~gpu-aware-mpi+hdf5~helics+hypre~ipo~masa+mpi+netcdf+openfast~openmp~rocm~shared~sycl+tests+tiny_profile~umpire~waves2amr ^openfast@master ^trilinos@master 2>&amp;1 | tee -a exawind_install.txt</code></pre>



<p>amr-wind+cuda+openfast3.5.3 成功的命令：</p>



<pre class="wp-block-code"><code># # virt-manager 中的 Ubuntu 20.04、NVIDIA P106-100
spack install --keep-stage --dont-restage amr-wind@main%gcc@=9.4.0+cuda+mpi+netcdf+openfast+tests cuda_arch=61 ^cuda@12.5  ^openfast@3.5.3+rosco%gcc@=9.4.0</code></pre>



<p>第一个要点：</p>



<p>尽管主页上有相关文档，但不要尝试用源码编译上面一整套软件，而是使用 spack 包管理系统进行安装。必要的情况下 amr_wind 的可以使用手工编译。这是软件开发人员在 issue 上解答问题的忠告（ Should I use exawind-manager to build Nalu-Wind and how to it #1318 https://github.com/Exawind/nalu-wind/issues/1318#issuecomment-2412425406 ），也是我自己折腾的心得。那么我上面的那么一长串 spack 命令参数是怎么来的呢？基于项目的夜间自动测试公告牌构建名称修改（ https://my.cdash.org/index.php?project=Exawind ），但是那个名称的参数是不全的，得自己补全，直接套用是通不过编译的。这也是开发人员的回答（ Spack install nalu-wind with Nvidia CUDA support always failed #1356 https://github.com/Exawind/nalu-wind/issues/1356#issuecomment-2669083929 ）。</p>



<p>第二个要点：</p>



<p>上面的核心软件，包括 exawind、nalu-wind、amr-wind、openfast、trilionos 都使用master或main（amr-wind）版本，开发者也应该是这个原则进行软件配套开发的。建议不要尝试指定某个软件包的老旧版本并试图找到各个软件包的协同版本，我的折腾中是没有成功过的。除了上面第三个命令单独安装 amr-wind+cuda+openfast3.5.3 指定了老的 openfast 版本。</p>



<p>第三个要点：</p>



<p>上面的 gcc 版本和 cuda 版本都不是任意选择的。比如，在上面 Ubuntu 24.04 上的安装中，同样的配置和命令，gcc-10+cuda12.5、 gcc-13+cuda12.5、 gcc-13+cuda12.8 均报错较多，还是 gcc-9+cuda12.5报错较少。</p>



<p>第四个要点：</p>



<p>这套软件非常难搞，我怀疑是一群非IT专业的风能专家在搞，不要指望能傻瓜式一键搞定。有问题搜索一下网络，问问 AI。如果还无法解决，不要死磕碰到的问题，在主页上的 issue 上有礼貌的请教一下吧，但不要以一种别人理所应当回答你的心态交流哦。</p>



<p>第五个要点：</p>



<p>如果你在执行 ctest 发现许多报错，不要慌。据一位开发者在 issue 上的回答，ctest 的测试主要针对开发者，普通用户程序能正常运行就行了。参见：nalu-wind spack "+tests" variant isn't working #1362 https://github.com/Exawind/nalu-wind/issues/1362#issuecomment-2701071912</p>



<p>下面是我安装软件过程中碰到的一些细节问题。仅供参考和启发思路。</p>



<p>一、ZLIB::ZLIB 找不到 </p>



<pre class="wp-block-code"><code>/home/littlebat/spack/opt/spack/linux-ubuntu20.05-haswell/gcc-9.4.0/hdf5-1.14.5-c6bklqmzralkiar24qpgah23nb4orrxg/cmake/hdf5-targets.cmake:59 (set_target_properties):
The link interface of target "hdf5-static" contains:

ZLIB::ZLIB
but the target was not found. Possible reasons include:

* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing.</code></pre>



<p>解决方法：把上面文件(hdf5-targets.cmake)中的 “\$”换成“/home/littlebat/spack/opt/spack/linux-ubuntu20.04-haswell/gcc-9.4.0/zlib-ng-2.2.3-3fi6htb3piiq4csoebqia4g5255emtno/lib/libz.so”就行。</p>



<p>二、找不到 netcdf_par.h，实际存在这个文件。还有测试时出现报错：“NetCDF: Parallel operation on file opened for non-parallel access”。这些问题通过 sudo apt remove 命令卸载 hdf5 相关的包解决，包括 dev 包。</p>



<p>三、MPI::MPI_C找不到</p>



<p>这个错误出现在 Ubuntu 24.04 上：</p>



<pre class="wp-block-code"><code>1 error found in build log:
     36    -- Found MPI: TRUE (found version "3.1")
     37    -- CMAKE_SYSTEM_NAME = Linux
     38    -- CMAKE_CXX_COMPILER_ID = GNU
     39    -- CMAKE_BUILD_TYPE = Release
     40    -- Trilinos git commit = 73510a07
     41    -- Configuring done (7.0s)
  >> 42    CMake Error at /home/ls/spack/opt/spack/linux-ubuntu24.04-x86_64_v4/gcc-9.5.0/trilinos-master-utj2sx3vq3ofar63jxn53fvlg6vg2fxs/lib/external_packages/MPI/MPIConfig.cmake:17 (target_link_librari
           es):
     43      The link interface of target "MPI::all_libs" contains:
     44    
     45        MPI::MPI_C
     46    
     47      but the target was not found.  Possible reasons include:
     48    

See build log for details:
  /tmp/ls/spack-stage/spack-stage-nalu-wind-master-4amikb4jc7jilxpqlwpn3qvssk56ohr7/spack-build-out.txt</code></pre>



<p>解决方法是在 /home/ls/spack/opt/spack/linux-ubuntu24.04-x86_64_v4/gcc-9.5.0/trilinos-master-utj2sx3vq3ofar63jxn53fvlg6vg2fxs/lib/external_packages/MPI/MPIConfig.cmake 中添加解决 ：<br>find_package(MPI REQUIRED)<br>add_library(MPI::MPI_C INTERFACE IMPORTED)</p>



<p>但在编译到 exawind 之前又要把上面添加的部分去掉，否则会出现报错如下：</p>



<pre class="wp-block-code"><code>1 error found in build log:
     23    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
     24    -- Found Threads: TRUE
     25    -- Enabled Kokkos devices: SERIAL;CUDA
     26    -- Found MPI_C: /home/ls/spack/opt/spack/linux-ubuntu24.04-x86_64_v4/gcc-9.5.0/openmpi-5.0.6-neo
           khhztni3czwnof43b75t54pcy2kap/bin/mpicc (found version "3.1")
     27    -- Found MPI_CXX: /home/ls/spack/opt/spack/linux-ubuntu24.04-x86_64_v4/gcc-9.5.0/openmpi-5.0.6-n
           eokhhztni3czwnof43b75t54pcy2kap/bin/mpic++ (found version "3.1")
     28    -- Found MPI: TRUE (found version "3.1")
  >> 29    CMake Error at /home/ls/spack/opt/spack/linux-ubuntu24.04-x86_64_v4/gcc-9.5.0/trilinos-master-ut
           j2sx3vq3ofar63jxn53fvlg6vg2fxs/lib/external_packages/MPI/MPIConfig.cmake:17 (add_library):
     30      add_library cannot create imported target "MPI::MPI_C" because another
     31      target with the same name already exists.
     32    Call Stack (most recent call first):
     33      /home/ls/spack/opt/spack/linux-ubuntu24.04-x86_64_v4/gcc-9.5.0/trilinos-master-utj2sx3vq3ofar6
           3jxn53fvlg6vg2fxs/lib/cmake/TeuchosCore/TeuchosCoreConfig.cmake:152 (include)
     34      /home/ls/spack/opt/spack/linux-ubuntu24.04-x86_64_v4/gcc-9.5.0/trilinos-master-utj2sx3vq3ofar6
           3jxn53fvlg6vg2fxs/lib/cmake/Teuchos/TeuchosConfig.cmake:146 (include)
     35      /home/ls/spack/opt/spack/linux-ubuntu24.04-x86_64_v4/gcc-9.5.0/trilinos-master-utj2sx3vq3ofar6
           3jxn53fvlg6vg2fxs/lib/cmake/MueLu/MueLuConfig.cmake:155 (include)

See build log for details:
  /tmp/ls/spack-stage/spack-stage-exawind-master-d3hzrukozo44vdyx6w5cmkbytnuswtle/spack-build-out.txt</code></pre>



<p>四、2025年5月底在 virt-manager 中的 Ubuntu 20.04 中编译时报错：</p>



<pre class="wp-block-code"><code>Error: InstallError: For Trilinos@[master,develop], ^kokkos version in spec must match version in Trilinos source code. Specify ^kokkos@4.6.01 for trilinos@[master,develop] instead of ^kokkos@4.5.01.
Trilinos recipe maintainers, please update the ^kokkos version range</code></pre>



<p>详细信息如下：</p>



<pre class="wp-block-code"><code>spack install --keep-stage --dont-restage exawind@master%gcc@=9.4.0+amr_wind_gpu+nalu_wind_gpu+cuda cuda_arch=61 build_type=Release ^cuda@12.5 ^nalu-wind@master%gcc@9.4.0~boost~catalyst+cuda~fftw+fsi~gpu-aware-mpi+hypre~ipo+openfast+pic~rocm~shared+tests+tioga~trilinos-solvers~umpire~wind-utils ^amr-wind@main%gcc@=9.4.0~ascent+cuda~fft~gpu-aware-mpi+hdf5~helics+hypre~ipo~masa+mpi+netcdf+openfast~openmp~rocm~shared~sycl+tests+tiny_profile~umpire~waves2amr  ^openfast@master ^trilinos@master 2>&amp;1 | tee -a install.txt

==> No binary for trilinos-master-hnt573kswlz2x2c5rih7f7iidav2iyhe found: installing from source
==> No patches needed for trilinos
==> trilinos: Executing phase: 'cmake'
==> Error: InstallError: For Trilinos@[master,develop], ^kokkos version in spec must match version in Trilinos source code. Specify ^kokkos@4.6.01 for trilinos@[master,develop] instead of ^kokkos@4.5.01.
Trilinos recipe maintainers, please update the ^kokkos version range

/home/littlebat/spack/var/spack/repos/builtin/packages/trilinos/package.py:639, in cmake_args:
        636            )
        637            kokkos_version_specified = spec["kokkos"].version
        638            if kokkos_version_in_trilinos_source != kokkos_version_specified:
  >>    639                raise InstallError(
        640                    "For Trilinos@[master,develop], ^kokkos version in spec must "
        641                    "match version in Trilinos source code. Specify ^kokkos@{0} ".format(
        642                        kokkos_version_in_trilinos_source

See build log for details:
  /tmp/littlebat/spack-stage/spack-stage-trilinos-master-hnt573kswlz2x2c5rih7f7iidav2iyhe/spack-build-out.txt

==> Warning: Skipping build of nalu-wind-master-dckmaqbynd7rq7szmv4tjfie5sganq4b since trilinos-master-hnt573kswlz2x2c5rih7f7iidav2iyhe failed
==> Warning: Skipping build of exawind-master-ir4qp6t7osfontywtmperyvay2mndjoc since nalu-wind-master-dckmaqbynd7rq7szmv4tjfie5sganq4b failed</code></pre>



<p>解决方法是手工下载安装 kokkos@4.6.01 kokkos-kernels@4.6.01 并修改相应配置文件 spack edit trilinos，spack edit kokkos，spack edit kokkos-kernels可以安装成功了。</p>



<p>详细命令如下：</p>



<pre class="wp-block-code"><code>spack edit trilinos:
    # External Kokkos
    with when("@14.4: +kokkos"):
        depends_on("kokkos+wrapper", when="+wrapper")
        depends_on("kokkos~wrapper", when="~wrapper")
        depends_on("kokkos+cuda_relocatable_device_code~shared", when="+cuda_rdc")
        depends_on("kokkos+hip_relocatable_device_code~shared", when="+rocm_rdc")
        depends_on("kokkos-kernels~shared", when="+cuda_rdc")
        depends_on("kokkos-kernels~shared", when="+rocm_rdc")
        depends_on("kokkos~complex_align")
        depends_on("kokkos@4.6.01", when="@master:")
        depends_on("kokkos@4.3.01", when="@16")
        depends_on("kokkos@4.2.01", when="@15.1:15")
        depends_on("kokkos@4.1.00", when="@14.4:15.0")
        depends_on("kokkos-kernels@4.6.01", when="@master:")
        depends_on("kokkos-kernels@4.3.01", when="@16")
        depends_on("kokkos-kernels@4.2.01", when="@15.1:15")
        depends_on("kokkos+openmp", when="+openmp")


spack edit kokkos:
# https://github.com/kokkos/kokkos/releases/download/4.6.01/kokkos-4.6.01.tar.gz
    version("4.6.01", sha256="b9d70e4653b87a06dbb48d63291bf248058c7c7db4bd91979676ad5609bb1a3a")

spack edit kokkos-kernels:
# https://github.com/kokkos/kokkos-kernels/releases/download/4.6.01/kokkos-kernels-4.6.01.tar.gz
    version("4.6.01", sha256="95b9357f37ab3b9c3913c00741acb2501831c28ea8664de67818ae79c69c5908")</code></pre>



<p>五、在 docker 中测试安装 naul-wind</p>



<pre class="wp-block-code"><code># 参考链接：spack install nalu-wind with openfast support always failed #1358 https://github.com/Exawind/nalu-wind/issues/1358#issuecomment-2678919142
# 参考链接：docker 自动化测试 https://github.com/Exawind/nalu-wind/blob/master/.github/workflows/ci.yml#L75

# 我使用的实际代码
sudo docker run -it ecpe4s/exawind-snapshot bash
git clone https://github.com/Exawind/nalu-wind.git
export GITHUB_WORKSPACE=/nalu-wind
echo ${GITHUB_WORKSPACE} ${EXAWIND_MANAGER}
#output: /nalu-wind /exawind-manager
/bin/bash -c " \
            source ${EXAWIND_MANAGER}/start.sh &amp;&amp; \
            spack-start &amp;&amp; \
            mkdir -p ${EXAWIND_MANAGER}/environments/exawind &amp;&amp; \
            cd ${EXAWIND_MANAGER}/environments/exawind &amp;&amp; \
            ln -s ${GITHUB_WORKSPACE} nalu-wind &amp;&amp; \
            spack -e e4s-build config add view:true &amp;&amp; \
            spack -e e4s-build add cmake^zlib-ng~new_strategies &amp;&amp; \
            spack -e e4s-build concretize -f &amp;&amp; \
            quick-create-dev -s nalu-wind@master+tioga+hypre~trilinos-solvers &amp;&amp; \
            spack manager external ${EXAWIND_MANAGER}/environments/e4s-build --exclude nalu-wind &amp;&amp; \
            spack concretize -f &amp;&amp; \
            spack install &amp;&amp; \
            spack cd -b nalu-wind &amp;&amp; \
            spack build-env nalu-wind ctest -j $(nproc) -L unit --output-on-failure \
          " 2>&amp;1 | tee -a docker_nalu-wind@master+tioga+hypre~trilinos-solvers.log</code></pre>



<p>六、其它一些重要命令用法示例</p>



<pre class="wp-block-code"><code>spack config edit cuda
spack compiler find
spack compilers #查看
spack install zlib %gcc #以gcc安装
spack config edit compilers 
~/.spack/config.yaml 内容如下：
config:
  build_stage:
    - /home/littlebat/tmp/spack-stage
  test_stage: /home/littlebat/tmp/test
  keep_stage: True（貌似这行不起作用）
然后 spack install --keep-stage packagename 这样就不会删除临时构建目录了</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2025/09/exawind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>超强免费的Linux文件恢复工具R-Linux简介</title>
		<link>http://www.learndiary.com/2024/12/r-linux/</link>
		<comments>http://www.learndiary.com/2024/12/r-linux/#respond</comments>
		<pubDate>Mon, 30 Dec 2024 11:27:04 +0000</pubDate>
		<dc:creator><![CDATA[littlebat]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[程序]]></category>
		<category><![CDATA[R-Linux]]></category>
		<category><![CDATA[数据恢复]]></category>

		<guid isPermaLink="false">https://www.learndiary.com/?p=7675</guid>
		<description><![CDATA[（首发地址：学习日记 https://www.learndiary.com/2024/12/r-linux/） &#8230; <a href="http://www.learndiary.com/2024/12/r-linux/" class="more-link">Continue reading<span class="screen-reader-text"> "超强免费的Linux文件恢复工具R-Linux简介"</span></a>]]></description>
				<content:encoded><![CDATA[
<p>（首发地址：学习日记 <a href="https://www.learndiary.com/2024/12/r-linux/">https://www.learndiary.com/2024/12/r-linux/</a>）</p>



<h4>一、Linux 误删除文件恢复的要点</h4>



<ol><li>删除文件后到恢复结束前，所在分区尽量避免进一步写操作；</li><li>选择恰当的恢复工具。如: ext4magic、photorec。这里介绍一款恢复效果更好的 R-Linux 6.3 build 191253。</li></ol>



<p>视频讲解：【超强免费的Linux文件恢复工具R-Linux简介】<a href="https://www.bilibili.com/video/BV1xB6VYdEkE/">https://www.bilibili.com/video/BV1xB6VYdEkE/</a></p>



<span id="more-7675"></span>



<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=113741488260187&bvid=BV1xB6VYdEkE&cid=27611825973&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="width:100%; height:500px; max-width:100%; align:center; padding:20px 0;"> </iframe>



<h4>二、R-Linux恢复文件的要点</h4>



<ol><li>主要针对 Linux 下的 ext2~ext4格式分区；</li><li>是款闭源免费软件；</li><li>仅有x86的32位或64位架构的 Linux 和 Windows 版本；</li><li>必须在图形界面下面工作。</li></ol>



<h4>三、测试场景和流程</h4>



<ol><li>Deepin V23，i7-4770 CPU；</li><li>测试文件夹是一个名为 ngrok_20211020的文件夹，包括 mp4、wav、txt、sh、png等类型的共41个文件；</li><li>使用 dd 命令清空西部数据蓝盘（WDC WD10EZEX-00K）机械硬盘的5G大小分区，再格式化成 ext4 分区，拷入上面的文件夹，再整个删除，重启电脑后，再进行恢复测试；</li><li>使用 R-Linux 进行普通恢复。方法是选中要恢复的分区，点击菜单上的“显示文件”，其中打红叉的表示删除的。还可以预览文件，搜索恢复的文件。然后，勾选要恢复的，点击菜单上的“恢复标记的”就可以恢复；</li><li>使用 R-Linux 进行扫描恢复。方法是选中要恢复的分区，点击菜单上的“扫描”，完毕后双击出现的“recognized”分区显示文件，然后同普通恢复一样进行恢复；</li><li>可以使用 R-Linux 对  xfs、btrfs 等格式分区进行扫描恢复，但不会区分已删除和存在的文件，且不能保留时间、文件路径和名称等信息；</li><li>恢复 xfs 分区误删除文件如果想保留文件路径和文件名，可以使用 R-Sudio，demo版可以恢复256KB以下的文件； </li><li>同样的分区格式，固态硬盘可能因为自身的垃圾回收机制，即使没有执行 trim 操作，同样条件下的恢复效果可能没有机械硬盘好。</li></ol>



<h4>四、参考链接</h4>



<ol><li>R-Linux <a href="https://www.r-studio.com/zhcn/free-linux-recovery/">https://www.r-studio.com/zhcn/free-linux-recovery/</a></li><li>R-Linux 帮助和用户手册 <a href="https://www.r-studio.com/free-linux-recovery-help/">https://www.r-studio.com/free-linux-recovery-help/</a></li><li>Linux下误删文件后的紧急应对策略：避免写操作与及时关机  <a href="https://www.learndiary.com/2024/10/rm-not-write/">https://www.learndiary.com/2024/10/rm-not-write/</a></li><li>Linux 下恢复误删除文件 <a href="https://www.learndiary.com/2022/09/linux-file-recovery/">https://www.learndiary.com/2022/09/linux-file-recovery/</a></li><li>使用 PhotoRec 恢复磁盘丢失文件  <a href="https://www.learndiary.com/2024/05/photorec/">https://www.learndiary.com/2024/05/photorec/</a></li></ol>
]]></content:encoded>
			<wfw:commentRss>http://www.learndiary.com/2024/12/r-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
