首页
关于
Search
1
HD9901-RK3399海纳思刷机包
10 阅读
2
hinas版portainer---docker面板,限arm机器
5 阅读
3
DIY HD9901(RK3399) Hinas镜像优化记录-boot优化,长文件名会被自动截断为8.3短文件名
5 阅读
4
DIY HD9901(RK3399) Hinas刷机后,优化--250902
5 阅读
5
linux交换区调整
5 阅读
默认分类
Linux
Windows
幼小学作业
登录
Search
lishx
累计撰写
19
篇文章
累计收到
2
条评论
首页
栏目
默认分类
Linux
Windows
幼小学作业
页面
关于
搜索到
11
篇与
的结果
2025-08-30
DIY HD9901(RK3399) Hinas镜像优化记录-boot优化,长文件名会被自动截断为8.3短文件名
刷机包中的原目录如下:root@x230:/mnt/hd9901# losetup -l NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC /dev/loop1 0 0 1 1 /var/lib/snapd/snaps/bare_5.snap 0 512 /dev/loop8 0 0 1 1 /var/lib/snapd/snaps/snap-store_1216.snap 0 512 /dev/loop15 0 0 1 1 /var/lib/snapd/snaps/core22_2111.snap 0 512 /dev/loop6 0 0 1 1 /var/lib/snapd/snaps/gnome-42-2204_202.snap 0 512 /dev/loop13 0 0 1 1 /var/lib/snapd/snaps/snapd-desktop-integration_83.snap 0 512 /dev/loop4 0 0 1 1 /var/lib/snapd/snaps/firefox_6738.snap 0 512 /dev/loop11 0 0 1 1 /var/lib/snapd/snaps/snapd_25202.snap 0 512 /dev/loop2 0 0 1 1 /var/lib/snapd/snaps/core22_2082.snap 0 512 /dev/loop0 0 0 0 0 /mnt/hd9901/hd9901_hinas.img 0 512 /dev/loop9 0 0 1 1 /var/lib/snapd/snaps/snap-store_959.snap 0 512 /dev/loop7 0 0 1 1 /var/lib/snapd/snaps/gtk-common-themes_1535.snap 0 512 /dev/loop5 0 0 1 1 /var/lib/snapd/snaps/gnome-42-2204_141.snap 0 512 /dev/loop12 0 0 1 1 /var/lib/snapd/snaps/snapd-desktop-integration_315.snap 0 512 /dev/loop3 0 0 1 1 /var/lib/snapd/snaps/firefox_6700.snap 0 512 /dev/loop10 0 0 1 1 /var/lib/snapd/snaps/snapd_24792.snap 0 512 root@x230:/mnt/hd9901# mount /dev/loop0p5 /mnt/img root@x230:/mnt/hd9901# umount /mnt/img root@x230:/mnt/hd9901# mount /dev/loop0p4 /mnt/img root@x230:/mnt/hd9901# tree /mnt/img/ /mnt/img/ ├── extlinux │ └── extlinux.conf ├── Image └── rk3399-hd9901.dtb 刷机后:root@hinas:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk2 179:0 0 14.6G 0 disk ├─mmcblk2p1 179:1 0 3.9M 0 part ├─mmcblk2p2 179:2 0 4M 0 part ├─mmcblk2p3 179:3 0 4M 0 part ├─mmcblk2p4 179:4 0 112M 0 part /mnt/mmcblk2p4 └─mmcblk2p5 179:5 0 1.8G 0 part / mmcblk2boot0 179:32 0 4M 1 disk mmcblk2boot1 179:64 0 4M 1 disk root@hinas:~# tree /mnt/mmcblk2p4 /mnt/mmcblk2p4 ├── extlinux │ └── extlin~1.con ├── image └── rk3399~1.dtb解决方法:修改原镜像包中的fstab配置nano /etc/fstab其中添加/dev/mmcblk2p4 /boot vfat defaults,utf8,iocharset=utf8,shortname=winnt 0 2
2025年08月30日
5 阅读
0 评论
0 点赞
2025-08-29
hinas版portainer---docker面板,限arm机器
ARM架构专属:Hinas版Portainer Docker管理面板部署指南环境准备# 确保安装必要依赖 apt install -y wget nano安装步骤1. 下载部署包cd / wget http://m.lpv4.cn:20080/tars/portaier_cn.tar.gz tar zxvf portaier_cn.tar.gz2. 创建工作目录mkdir -p /opt/Portainer/compose/portainer cd /opt/Portainer/compose/portainer3. 配置docker-compose文件使用nano编辑器创建配置文件:nano docker-compose.yml粘贴以下配置内容:services: portainer: image: registry.cn-hangzhou.aliyuncs.com/histb/portainer:2.14.0 container_name: Portainer restart: always network_mode: host volumes: - /var/run/docker.sock:/var/run/docker.sock - /opt/Portainer:/data - /opt/Portainer/portainer_public:/public - /dev:/dev stdin_open: true tty: true privileged: true配置说明:network_mode: host:直接使用宿主机网络privileged: true:授予设备访问权限(需谨慎使用)卷挂载说明:/var/run/docker.sock:Docker API接口/opt/Portainer:持久化存储目录4. 启动服务docker compose up -d验证安装# 查看容器状态 docker ps | grep Portainer # 访问管理界面 浏览器访问:http://<设备IP>:9000常见问题端口冲突:若9000端口被占用,修改docker-compose的ports配置权限问题:确保/var/run/docker.sock有正确权限镜像拉取失败:尝试更换国内镜像源:docker pull registry.cn-hangzhou.aliyuncs.com/histb/portainer:2.14.0升级指南cd /opt/Portainer/compose/portainer docker compose down docker pull registry.cn-hangzhou.aliyuncs.com/histb/portainer:最新版本号 docker compose up -d卸载方法docker compose down rm -rf /opt/Portainer注意事项ARMv7/ARMv8设备需确认CPU架构兼容性生产环境建议加强安全设置:修改默认端口启用HTTPS定期备份/opt/Portainer目录通过本文部署的Portainer面板,可实现:Docker容器/镜像/卷的可视化管理用户权限控制设备资源监控栈部署(Stack部署)功能提示:首次登录需创建管理员账号,建议使用强密码策略。默认帐号密码是admin/123456qwerty
2025年08月29日
5 阅读
0 评论
0 点赞
2025-08-29
扩展空间脚本优化记录
我帮你修改脚本,将 DISK="/dev/mmcblk0" 和 ROOT_PARTITION="${DISK}p5" 替换为通过 findmnt -no SOURCE / 动态获取根分区设备路径,同时保持其他功能不变。以下是完整的修改后脚本代码:#!/bin/bash # 日志文件 LOG_FILE="/var/log/expand_root_and_swapfile.log" exec > >(tee -a "$LOG_FILE") 2>&1 echo "===== 根分区扩展与交换文件创建脚本开始执行: $(date) =====" # 检查是否以 root 用户运行 if [ "$(id -u)" != "0" ]; then echo "错误:此脚本需要以 root 权限运行,请使用 sudo 或切换到 root 用户。" exit 1 fi # 检查必要工具是否安装(扩展分区和文件系统所需的工具) if ! command -v parted >/dev/null 2>&1; then echo "错误:parted 未安装,请先安装 parted(例如:apt install parted)。" exit 1 fi if ! command -v resize2fs >/dev/null 2>&1; then echo "错误:resize2fs 未安装,请先安装 e2fsprogs(例如:apt install e2fsprogs)。" exit 1 fi if ! command -v expect >/dev/null 2>&1; then echo "错误:expect 未安装,请先安装 expect(例如:apt install expect)。" exit 1 fi if ! command -v partprobe >/dev/null 2>&1; then echo "错误:partprobe 未安装,请先安装 parted(例如:apt install parted)。" exit 1 fi if ! command -v fsck >/dev/null 2>&1; then echo "错误:fsck 未安装,请先安装 e2fsprogs(例如:apt install e2fsprogs)。" exit 1 fi # 定义交换文件和大小 SWAP_FILE="/swapfile" SWAP_SIZE_MB=512 # 通过 findmnt 获取根分区设备路径 ROOT_PARTITION=$(findmnt -no SOURCE /) if [ -z "$ROOT_PARTITION" ]; then echo "错误:无法通过 findmnt 获取根分区设备路径,请检查系统配置。" exit 1 fi # 从根分区路径推导磁盘设备路径(例如 /dev/mmcblk0p5 -> /dev/mmcblk0) DISK=$(echo "$ROOT_PARTITION" | sed -r 's/p[0-9]+$//') if [ -z "$DISK" ]; then echo "错误:无法从根分区路径 $ROOT_PARTITION 推导磁盘设备路径。" exit 1 fi # 检查磁盘是否存在 if [ ! -b "$DISK" ]; then echo "错误:磁盘 $DISK 不存在,请检查设备名称。" exit 1 fi # 检查根分区是否存在 if [ ! -b "$ROOT_PARTITION" ]; then echo "错误:根分区 $ROOT_PARTITION 不存在,请检查分区编号。" exit 1 fi # 检查根分区是否挂载 MOUNT_POINT=$(mount | grep "$ROOT_PARTITION" | awk '{print $3}') if [ -z "$MOUNT_POINT" ]; then echo "错误:根分区 $ROOT_PARTITION 未挂载,请确保分区已挂载。" exit 1 fi echo "根分区 $ROOT_PARTITION 已挂载到 $MOUNT_POINT,可以在线扩展。" # 显示分区表和可用空间 echo "正在检查磁盘 $DISK 的分区布局..." parted -s "$DISK" unit MB print free # 验证根分区是否为最后一个分区且后面有可用空间 FREE_SPACE=$(parted -s "$DISK" unit MB print free | grep -A1 "Number.*Start.*End.*Size" | tail -n 1 | grep "Free Space") if [ -z "$FREE_SPACE" ]; then echo "错误:根分区 $ROOT_PARTITION 后面没有可用空间,无法扩展。" exit 1 fi # 使用 expect 自动运行 parted,模拟手动步骤:print free -> Fix -> resizepart [分区号] 100% -> quit PARTITION_NUMBER=$(echo "$ROOT_PARTITION" | grep -o '[0-9]\+$') if [ -z "$PARTITION_NUMBER" ]; then echo "错误:无法从根分区路径 $ROOT_PARTITION 提取分区号。" exit 1 fi echo "正在运行 parted,自动输入 'Fix' 并调整根分区大小..." /usr/bin/expect <<EOF set timeout 30 spawn parted $DISK expect "(parted)" { send "print free\r" expect { "Fix/Ignore?" { send "Fix\r" expect "(parted)" { send "resizepart $PARTITION_NUMBER 100%\r" expect "(parted)" { send "quit\r" } } } "(parted)" { send "resizepart $PARTITION_NUMBER 100%\r" expect "(parted)" { send "quit\r" } } timeout { send_user "错误:parted 交互超时\n" exit 1 } } } expect eof EOF if [ $? -ne 0 ]; then echo "错误:parted 执行失败,请检查日志 $LOG_FILE。" exit 1 fi # 通知内核更新分区表 echo "正在通知内核更新分区表..." partprobe "$DISK" || { echo "错误:partprobe 失败,尝试使用 blockdev 同步..." blockdev --rereadpt "$DISK" || { echo "错误:分区表同步失败,请检查日志 $LOG_FILE。" exit 1 } } # 显示调整后的分区表 echo "根分区调整完成,以下是新的分区布局:" parted -s "$DISK" unit MB print free # 检查文件系统一致性(非破坏性检查) echo "正在检查文件系统一致性(非破坏性)..." fsck -n "$ROOT_PARTITION" || { echo "警告:文件系统检查发现问题,建议手动运行 'e2fsck -f $ROOT_PARTITION' 修复(需卸载或重启到单用户模式)。" echo "继续尝试在线扩展文件系统..." } # 执行文件系统扩展 echo "正在扩展根分区文件系统..." resize2fs "$ROOT_PARTITION" || { echo "错误:文件系统扩展失败,请检查日志 $LOG_FILE。" echo "可能需要手动运行 'e2fsck -f $ROOT_PARTITION' 和 'resize2fs $ROOT_PARTITION'。" exit 1 } # 显示扩展后的文件系统信息 echo "根分区文件系统扩展完成!以下是新的文件系统信息:" df -h | grep "$ROOT_PARTITION" # 检查交换文件相关工具和空间 echo "正在检查交换文件创建所需的工具和空间..." if ! command -v mkswap >/dev/null 2>&1; then echo "错误:mkswap 未安装,请先安装 util-linux(例如:apt install util-linux)。" exit 1 fi # 检查扩展后根文件系统可用空间是否足够创建 512MB 交换文件 FREE_SPACE_MB=$(df --block-size=1M "$MOUNT_POINT" | tail -n 1 | awk '{print $4}') if [ -z "$FREE_SPACE_MB" ]; then echo "错误:无法获取扩展后根文件系统可用空间,请检查 df 命令输出。" exit 1 fi if [ "$FREE_SPACE_MB" -lt "$SWAP_SIZE_MB" ]; then echo "错误:扩展后根文件系统可用空间 ($FREE_SPACE_MB MB) 小于所需的交换文件大小 ($SWAP_SIZE_MB MB)。" exit 1 fi echo "扩展后根文件系统可用空间为 $FREE_SPACE_MB MB,足以创建 $SWAP_SIZE_MB MB 交换文件。" # 创建交换文件 echo "正在创建 $SWAP_SIZE_MB MB 交换文件 ($SWAP_FILE)..." if [ -f "$SWAP_FILE" ]; then echo "交换文件 $SWAP_FILE 已存在,跳过创建。" else dd if=/dev/zero of="$SWAP_FILE" bs=1M count="$SWAP_SIZE_MB" status=progress || { echo "错误:创建交换文件失败,请检查日志 $LOG_FILE。" exit 1 } chmod 600 "$SWAP_FILE" || { echo "错误:设置交换文件权限失败,请检查日志 $LOG_FILE。" exit 1 } mkswap "$SWAP_FILE" || { echo "错误:格式化交换文件失败,请检查日志 $LOG_FILE。" exit 1 } fi # 启用交换文件 echo "正在启用交换文件..." swapon "$SWAP_FILE" || { echo "错误:启用交换文件失败,请检查日志 $LOG_FILE。" exit 1 } # 添加交换文件到 fstab echo "正在将交换文件添加到 /etc/fstab..." if ! grep -q "$SWAP_FILE" /etc/fstab; then echo "$SWAP_FILE none swap sw 0 0" >> /etc/fstab echo "交换文件已添加到 /etc/fstab。" else echo "交换文件已在 /etc/fstab 中,无需重复添加。" fi # 显示交换空间状态 echo "交换文件创建并启用完成!以下是交换空间信息:" swapon --show # 禁用脚本以防止下次启动重复执行 systemctl disable auto-expand-root.service echo "脚本已完成并禁用自动执行,避免重复运行。" echo "===== 根分区扩展与交换文件创建脚本执行完成: $(date) ====="修改说明动态获取根分区:使用 ROOT_PARTITION=$(findmnt -no SOURCE /) 获取根分区的设备路径(如 /dev/mmcblk0p5)。添加了错误检查,确保 findmnt 能正确返回根分区路径。推导磁盘设备路径:从根分区路径(如 /dev/mmcblk0p5)通过 sed -r 's/p[0-9]+$//' 提取磁盘设备路径(如 /dev/mmcblk0)。添加了错误检查,确保能正确提取磁盘路径。动态获取分区号:在 parted 的 resizepart 命令中,使用 PARTITION_NUMBER=$(echo "$ROOT_PARTITION" | grep -o '[0-9]\+$') 提取分区号(如 5),以动态调整根分区。添加了错误检查,确保能正确提取分区号。其他部分保持不变:保留了原脚本的所有功能,包括日志记录、分区扩展、文件系统扩展、交换文件创建等。错误提示和日志输出中的设备路径已更新为动态获取的 $ROOT_PARTITION 和 $DISK。注意事项脚本假设根分区是最后一个分区且后面有可用空间。如果实际情况不同,可能需要进一步调整逻辑。确保 findmnt 命令可用(通常包含在 util-linux 包中)。如果根分区路径格式非标准(如不是 /dev/mmcblk0pX 形式),sed 提取磁盘路径的逻辑可能需要调整。原脚本:#!/bin/bash # 日志文件 LOG_FILE="/var/log/expand_root_and_swapfile.log" exec > >(tee -a "$LOG_FILE") 2>&1 echo "===== 根分区扩展与交换文件创建脚本开始执行: $(date) =====" # 检查是否以 root 用户运行 if [ "$(id -u)" != "0" ]; then echo "错误:此脚本需要以 root 权限运行,请使用 sudo 或切换到 root 用户。" exit 1 fi # 检查必要工具是否安装(扩展分区和文件系统所需的工具) if ! command -v parted >/dev/null 2>&1; then echo "错误:parted 未安装,请先安装 parted(例如:apt install parted)。" exit 1 fi if ! command -v resize2fs >/dev/null 2>&1; then echo "错误:resize2fs 未安装,请先安装 e2fsprogs(例如:apt install e2fsprogs)。" exit 1 fi if ! command -v expect >/dev/null 2>&1; then echo "错误:expect 未安装,请先安装 expect(例如:apt install expect)。" exit 1 fi if ! command -v partprobe >/dev/null 2>&1; then echo "错误:partprobe 未安装,请先安装 parted(例如:apt install parted)。" exit 1 fi if ! command -v fsck >/dev/null 2>&1; then echo "错误:fsck 未安装,请先安装 e2fsprogs(例如:apt install e2fsprogs)。" exit 1 fi # 定义目标磁盘、分区和交换文件 DISK="/dev/mmcblk0" ROOT_PARTITION="${DISK}p5" SWAP_FILE="/swapfile" SWAP_SIZE_MB=512 # 检查磁盘是否存在 if [ ! -b "$DISK" ]; then echo "错误:磁盘 $DISK 不存在,请检查设备名称。" exit 1 fi # 检查根分区是否存在 if [ ! -b "$ROOT_PARTITION" ]; then echo "错误:根分区 $ROOT_PARTITION 不存在,请检查分区编号。" exit 1 fi # 检查根分区是否挂载 MOUNT_POINT=$(mount | grep "$ROOT_PARTITION" | awk '{print $3}') if [ -z "$MOUNT_POINT" ]; then echo "错误:根分区 $ROOT_PARTITION 未挂载,请确保分区已挂载。" exit 1 fi echo "根分区 $ROOT_PARTITION 已挂载到 $MOUNT_POINT,可以在线扩展。" # 显示分区表和可用空间 echo "正在检查磁盘 $DISK 的分区布局..." parted -s "$DISK" unit MB print free # 验证根分区是否为最后一个分区且后面有可用空间 FREE_SPACE=$(parted -s "$DISK" unit MB print free | grep -A1 "Number.*Start.*End.*Size" | tail -n 1 | grep "Free Space") if [ -z "$FREE_SPACE" ]; then echo "错误:根分区 $ROOT_PARTITION 后面没有可用空间,无法扩展。" exit 1 fi # 使用 expect 自动运行 parted,模拟手动步骤:print free -> Fix -> resizepart 5 100% -> quit echo "正在运行 parted,自动输入 'Fix' 并调整根分区大小..." /usr/bin/expect <<EOF set timeout 30 spawn parted $DISK expect "(parted)" { send "print free\r" expect { "Fix/Ignore?" { send "Fix\r" expect "(parted)" { send "resizepart 5 100%\r" expect "(parted)" { send "quit\r" } } } "(parted)" { send "resizepart 5 100%\r" expect "(parted)" { send "quit\r" } } timeout { send_user "错误:parted 交互超时\n" exit 1 } } } expect eof EOF if [ $? -ne 0 ]; then echo "错误:parted 执行失败,请检查日志 $LOG_FILE。" exit 1 fi # 通知内核更新分区表 echo "正在通知内核更新分区表..." partprobe "$DISK" || { echo "错误:partprobe 失败,尝试使用 blockdev 同步..." blockdev --rereadpt "$DISK" || { echo "错误:分区表同步失败,请检查日志 $LOG_FILE。" exit 1 } } # 显示调整后的分区表 echo "根分区调整完成,以下是新的分区布局:" parted -s "$DISK" unit MB print free # 检查文件系统一致性(非破坏性检查) echo "正在检查文件系统一致性(非破坏性)..." fsck -n "$ROOT_PARTITION" || { echo "警告:文件系统检查发现问题,建议手动运行 'e2fsck -f /dev/mmcblk0p5' 修复(需卸载或重启到单用户模式)。" echo "继续尝试在线扩展文件系统..." } # 执行文件系统扩展 echo "正在扩展根分区文件系统..." resize2fs "$ROOT_PARTITION" || { echo "错误:文件系统扩展失败,请检查日志 $LOG_FILE。" echo "可能需要手动运行 'e2fsck -f /dev/mmcblk0p5' 和 'resize2fs /dev/mmcblk0p5'。" exit 1 } # 显示扩展后的文件系统信息 echo "根分区文件系统扩展完成!以下是新的文件系统信息:" df -h | grep "$ROOT_PARTITION" # 检查交换文件相关工具和空间 echo "正在检查交换文件创建所需的工具和空间..." if ! command -v mkswap >/dev/null 2>&1; then echo "错误:mkswap 未安装,请先安装 util-linux(例如:apt install util-linux)。" exit 1 fi # 检查扩展后根文件系统可用空间是否足够创建 512MB 交换文件 FREE_SPACE_MB=$(df --block-size=1M "$MOUNT_POINT" | tail -n 1 | awk '{print $4}') if [ -z "$FREE_SPACE_MB" ]; then echo "错误:无法获取扩展后根文件系统可用空间,请检查 df 命令输出。" exit 1 fi if [ "$FREE_SPACE_MB" -lt "$SWAP_SIZE_MB" ]; then echo "错误:扩展后根文件系统可用空间 ($FREE_SPACE_MB MB) 小于所需的交换文件大小 ($SWAP_SIZE_MB MB)。" exit 1 fi echo "扩展后根文件系统可用空间为 $FREE_SPACE_MB MB,足以创建 $SWAP_SIZE_MB MB 交换文件。" # 创建交换文件 echo "正在创建 $SWAP_SIZE_MB MB 交换文件 ($SWAP_FILE)..." if [ -f "$SWAP_FILE" ]; then echo "交换文件 $SWAP_FILE 已存在,跳过创建。" else dd if=/dev/zero of="$SWAP_FILE" bs=1M count="$SWAP_SIZE_MB" status=progress || { echo "错误:创建交换文件失败,请检查日志 $LOG_FILE。" exit 1 } chmod 600 "$SWAP_FILE" || { echo "错误:设置交换文件权限失败,请检查日志 $LOG_FILE。" exit 1 } mkswap "$SWAP_FILE" || { echo "错误:格式化交换文件失败,请检查日志 $LOG_FILE。" exit 1 } fi # 启用交换文件 echo "正在启用交换文件..." swapon "$SWAP_FILE" || { echo "错误:启用交换文件失败,请检查日志 $LOG_FILE。" exit 1 } # 添加交换文件到 fstab echo "正在将交换文件添加到 /etc/fstab..." if ! grep -q "$SWAP_FILE" /etc/fstab; then echo "$SWAP_FILE none swap sw 0 0" >> /etc/fstab echo "交换文件已添加到 /etc/fstab。" else echo "交换文件已在 /etc/fstab 中,无需重复添加。" fi # 显示交换空间状态 echo "交换文件创建并启用完成!以下是交换空间信息:" swapon --show # 禁用脚本以防止下次启动重复执行 systemctl disable auto-expand-root.service echo "脚本已完成并禁用自动执行,避免重复运行。" echo "===== 根分区扩展与交换文件创建脚本执行完成: $(date) =====" 其中DISK="/dev/mmcblk0" ROOT_PARTITION="${DISK}p5"是固定的,能不能改成通过findmnt -no SOURCE /来获取,其它功能不变,输出完整脚本代码,中文回答
2025年08月29日
3 阅读
0 评论
0 点赞
2025-08-29
X86 ubuntu设置合上盖子不休眠
在 Ubuntu 中设置合上笔记本盖子不休眠,可以通过修改电源管理设置实现。以下是具体步骤:打开设置:点击屏幕右上角的系统菜单,选择“设置”或“系统设置”。进入电源设置:在设置窗口中,找到“电源”或“电源管理”选项。修改合盖行为:找到“合上盖子时的行为”或类似选项(可能在“电源”或“节能”部分)。将“合上盖子”设置为“无操作”或“Do nothing”。在“交流电源”和“电池供电”两种模式下,分别检查和设置。使用命令行(可选):如果图形界面没有效果或需要更精确控制,可以编辑配置文件:打开终端,编辑 /etc/systemd/logind.conf 文件:sudo nano /etc/systemd/logind.conf找到以下行(如果没有,可以添加):HandleLidSwitch=ignore HandleLidSwitchExternalPower=ignore HandleLidSwitchDocked=ignoreHandleLidSwitch:控制电池供电时合盖行为。HandleLidSwitchExternalPower:控制接通电源时合盖行为。HandleLidSwitchDocked:控制外接显示器时的合盖行为。将值设置为 ignore 表示合盖不休眠。保存文件后,运行以下命令使更改生效:sudo systemctl restart systemd-logind验证设置:合上盖子,检查系统是否休眠。如果不休眠,设置成功。注意:如果使用的是 GNOME 桌面环境,可能需要安装 dconf-editor 来进一步调整:sudo apt install dconf-editor然后打开 dconf-editor,导航到 /org/gnome/settings-daemon/plugins/power/,将 lid-close-ac-action 和 lid-close-battery-action 设置为 nothing。某些笔记本型号可能需要额外的内核参数或固件更新,确保系统是最新的:sudo apt update && sudo apt upgrade如果仍有问题,可以检查硬件兼容性或在 X 上搜索相关帖子以获取社区帮助。需要我帮你搜索具体的 X 帖子或进一步调试吗?
2025年08月29日
2 阅读
0 评论
0 点赞
2025-08-29
linux无损扩展根分区空间
要无损扩展 /dev/mmcblk2p5 分区(根分区 /)的空间,请按以下步骤操作:步骤 1:确认磁盘布局从 lsblk 输出可知:磁盘总大小:14.6G当前根分区 /dev/mmcblk2p5 大小:1.8G剩余未分配空间:约 12.7G(位于根分区之后)步骤 2:安装必要工具# 安装分区扩展工具(如未安装) apt update && apt install -y cloud-utils gdisk步骤 3:扩展分区使用 growpart 工具扩展分区到磁盘末尾:growpart /dev/mmcblk2 5步骤 4:调整文件系统大小直接扩展 ext4 文件系统以利用新增空间(无需卸载分区):resize2fs /dev/mmcblk2p5步骤 5:验证结果df -h /输出应显示根分区空间已扩展(例如从 1.8G 增加到接近 14G)。注意事项数据安全:虽然操作是无损的,但建议提前备份关键数据。电源稳定:操作过程中确保设备不断电。分区表类型:此方法适用于 GPT 或 MSDOS 分区表。嵌入式设备:如果设备使用自定义镜像,可能需要额外调整(如 fstab 或引导配置)。原理说明growpart:通过调整分区结束位置扩展分区(无需重启)。resize2fs:在线扩展 ext4 文件系统到分区新大小。如果遇到问题,可提供 /var/log/syslog 日志进一步排查。
2025年08月29日
2 阅读
0 评论
0 点赞
1
2
3