qemu对ofd锁的支持
📅 2026/7/27 11:41:19
👁️ 次浏览
概述这是一个issue驱动的问题探究涉及ubuntu20、24systemd、qemu、docker、buildx等系统组件。问题我在ubuntu20的x86服务器上构建arm的docker使用qemu来进行虚拟化运行。报错Failed to take/etc/passwd lock: Invalid argumentdpkg: error processing package systemd (--configure):installed systemd package post-installation script subprocess returned error exit status 1Processing triggers for libc-bin (2.39-0ubuntu8.2) ...Errors were encountered while processing:systemdE: Sub-process /usr/bin/dpkg returned an error code (1)我在wsl2 ubuntu24上执行相同的命令则没问题需要进行分析为什么分析一步一步拆分在qemu上运行 flock是没问题的执行postinst是有问题的。bash脚本单行执行bash -x /var/lib/dpkg/info/systemd.postinst configure 255.4-1ubuntu8.16 21 | tee postinst.log然后 看到是 systemd-sysusers basic.conf systemd-journal.conf systemd-network.conf 的 报错。问题在systemd-sysusers然后查看对应的源码这里默认使用的是ofd锁。if (!arg_dry_run) { lock take_etc_passwd_lock(arg_root); if (lock 0) return log_error_errno(lock, Failed to take /etc/passwd lock: %m); } take_etc_passwd_lock int unposix_lock(int fd, int operation) { return fcntl_lock(fd, operation, /*ofd*/ true); } static int fcntl_lock(int fd, int operation, bool ofd) { int cmd, type, r; assert(fd 0); if (ofd) cmd (operation LOCK_NB) ? F_OFD_SETLK : F_OFD_SETLKW; else cmd (operation LOCK_NB) ? F_SETLK : F_SETLKW; switch (operation ~LOCK_NB) { case LOCK_EX: type F_WRLCK; break; case LOCK_SH: type F_RDLCK; break; case LOCK_UN: type F_UNLCK; break; default: assert_not_reached(); } r RET_NERRNO(fcntl(fd, cmd, (struct flock) { .l_type type, .l_whence SEEK_SET, .l_start 0, .l_len 0, })); if (r -EACCES) /* Treat EACCESS/EAGAIN the same as per man page. */ r -EAGAIN; return r; }知道是ofd锁的问题然后就是写了一个最简单使用ofd锁的程序#define _GNU_SOURCE #include stdio.h #include fcntl.h #include unistd.h int main() { int fd open(/tmp/test.lock, O_WRONLY | O_CREAT, 0600); if (fd 0) { perror(open); return 1; } struct flock fl { .l_type F_WRLCK, .l_whence SEEK_SET, .l_start 0, .l_len 0 }; if (fcntl(fd, F_OFD_SETLK, fl) 0) printf(OFD lock succeeded\n); else perror(OFD lock failed); close(fd); return 0; }静态编译这个程序然后 用来测试。对比了一下火山云和wsl2环境的区别主要是ubuntu24然后 qemu 版本也有差别qemu 4.2.1对比 qemu 8.2.2查看了一下开源社区的issueBug #2069555 “Failed to take /etc/passwd lock: Invalid argument ...” : Bugs : systemd package : UbuntuFailed to take /etc/passwd lock on latest qemu-aarch64-static environment. · Issue #214 · multiarch/qemu-user-static · GitHub然后在相同的环境尝试下载不同版本的qemu进行对比wget https://github.com/multiarch/qemu-user-static/releases/download/v5.2.0-1/qemu-aarch64-static最终解决方案在ubuntu20的环境中手动替换 qemu-aarch64-static 二进制。替换完之后就ok了。后续探究qemu与binfmts之间的关系qemu的源码学习ofd锁的创新点
肝脏巨噬细胞是肝脏内一类关键的细胞组分,约占肝脏细胞总数的15%,在维持体内平衡、促进和消退炎症、修复组织以及导致纤维化进展或消退等方面的发挥关键作用。肝脏受损时,常驻的Kupffer细胞会感知到稳态被打破,随即与肝内其他细胞…
📅 2026/7/26 21:37:05
文章目录AI为什么难以读懂业务?让分散数据围绕业务对象连接起来让时序能力落到实际业务AI为什么难以读懂业务?
让AI判断一台设备是否异常,究竟需要多少数据?
如果只盯着当前的温度读数,显然远远不够。温度升高&#…
📅 2026/7/26 21:39:24
1. 项目概述:RealSense L515在2D/3D分割中的应用 Intel RealSense L515作为一款轻量级LiDAR相机,在机器人视觉和三维感知领域展现了独特优势。这款采用固态激光雷达技术的深度相机,通过结合940nm VCSEL激光器和1.3MP RGB传感器,能…
📅 2026/7/26 16:54:55
如何利用Invoke-Build实现增量构建?提升开发效率的5个实用案例 【免费下载链接】Invoke-Build Build Automation in PowerShell 项目地址: https://gitcode.com/gh_mirrors/in/Invoke-Build
Invoke-Build是一款强大的PowerShell构建自动化工具,通…
📅 2026/7/27 11:41:01
Practical Windows Forensics cheat sheet速查:10分钟掌握取证关键命令 【免费下载链接】PWF Practical Windows Forensics Training 项目地址: https://gitcode.com/gh_mirrors/pw/PWF
Practical Windows Forensics(PWF)是一款专注于…
📅 2026/7/27 11:41:01
chat_templates与transformers集成教程:打造专业级对话系统 【免费下载链接】chat_templates Chat Templates for 🤗 HuggingFace Large Language Models 项目地址: https://gitcode.com/gh_mirrors/ch/chat_templates
chat_templates是一个为Hug…
📅 2026/7/27 11:41:01
如何在Mac上完美连接Xbox手柄:360Controller终极驱动指南 【免费下载链接】360Controller TattieBogle Xbox 360 Driver (with improvements) 项目地址: https://gitcode.com/gh_mirrors/36/360Controller
还在为Mac电脑无法识别Xbox手柄而烦恼吗?…
📅 2026/7/27 11:41:01
Jellium Desktop视频色彩基础教程:色彩基础 【免费下载链接】jellium-desktop An unofficial desktop client for Jellyfin 项目地址: https://gitcode.com/GitHub_Trending/je/jellium-desktop
Jellium Desktop是一款非官方的Jellyfin桌面客户端,…
📅 2026/7/27 11:41:01
同花顺期货通的指标广场里藏着超多实用指标,如果看中了哪个却拿不到源码,别担心——我们可以提供破解和源码提取服务。建议大家先去广场免费安装试用一圈,挑出真正顺手的那款,再来找我们提取源码就行!友情提示…
📅 2026/7/27 11:40:00
现象在 WezTerm 终端中,包含中文路径的文本(如标签页标题、Shell 提示符、路径补全)中,某些汉字时而渲染为日文字形,时而显示为简体中文(中国大陆)字形。以「径」字为例,日文写法右侧…
📅 2026/7/27 0:00:07
这个问题看似在寻找一个答案,实际上是在寻找一种“值得继续投入的方向感”。很多人在问:
“人生有什么意义?”
深层可能是在问:
我现在做的事情值得吗?我的努力有没有价值?我的存在是不是重要?未…
📅 2026/7/27 0:00:07
1. 为什么MoE架构让大模型参数量翻倍却不增加推理成本?去年我在部署一个千亿参数大语言模型时,首次接触到混合专家模型(Mixture of Experts,简称MoE)架构。当时最让我震惊的是,这种架构的模型参数量可以达到…
📅 2026/7/27 0:00:07
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/27 1:11:21
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/27 1:11:21
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/27 1:11:21
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/27 7:11:38
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/26 17:10:53
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/27 5:11:32