博文

目前显示的是 二月, 2024的博文

remmina 在 ubuntu 下剪贴板粘贴图像至 RDP 协议的 Windows 主机

 remmina rdp 协议所使用的后端 freerdp 是支持粘贴文件和图像。 但是在 remmina 中只实现了粘贴图像。 根据这一篇 issue 中提到的  File copy&paste clipboard [RDP] For those users looking for a way to copy image as I did: On Ubuntu 21.10 copying image actually works from/to Firefox, Telegram, Screenshot app... And does not work in Chrome and Chrome-bases applications like WALC (WhatsApp client) 从 Windows 中复制的图像无法直接粘贴至 Chrome 和基于该内核的应用,需要先粘贴到其他软件,例如 LibreOffice 中,再进行复制。 对于 Ubuntu 的屏幕截图粘贴至 Windows ,也需要先粘贴至其他软件再进行复制粘贴。  

系统与数据备份

使用 VHDX 虚拟磁盘安装系统,可以做到 硬盘单分区,避免系统盘剩余空间浪费。同时为系统预留充足空间。  单文件备份与恢复较为方便。  但是可能会影响系统性能,而且 VHDX 文件变大后无法再变小。  将 Users 文件夹通过目录软连接的方式移动到虚拟硬盘外面,将用户数据与系统隔离。如果是全新安装系统,可以参考  在Windows安装过程移动Users(AppData)目录  如果系统已经安装完成,则参考  修改 Users 文件夹路径  ,在 PE 下进行操作,同时注意 PE 中挂载的 VHDX 磁盘与目标硬盘的盘符。 根据 3-2-1 原则 3:存储3 份完整文件,一份原件加上两份拷贝。2:将文件起码保存在两种不同的介质上。1:将一份拷贝保存在异地。 由于使用 NAS 受网线速率的瓶颈,笔记本使用 2.5G 及以上速率网卡较为不便,且大部分电脑目前都有 2 个 m.2 硬盘位,故使用另外一块硬盘实现“文件保存在两种不同的介质上”。 在工作和生活中可能会遇到误删文件、硬盘损坏、电脑丢失。 对于误删文件,需要对文件进行多版本备份,对于硬盘损坏,需要对系统进行备份(最好是无感进行,无需其他环境),对于硬件丢失,需要用云服务,且需要有文件区块级别的增量备份。 对于备份软件选取的要求:方便(有 GUI),无感(后台进行,不影响当前工作),增量备份(备份多个版本的系统速度快)。 原来笔者一直使用 Diskgenius 的分区到镜像 功能作为备份,但是没有定时备份,需要手动操作,无法对文件区块进行增量备份,而且进行增量备份后,只能删除最后的时间点,不能删除最开始的时间点。 最后选取了 duplicati 作为备份软件,相比较与其他软件,开源免费带 GUI。 下面是关于 duplicati 的配置。 为了做到无感备份,在 Windows 下软件可以使用微软的 VSS 功能,需要以管理员模式启动软件,在 duplicati 中需要手动开启,其选项为 snapshot-policy 。 如果需要以管理员权限进行自启动,需要先再任务管理器中关闭原来的自启动,通过任务计划程序手动添加任务。 如果你不想备份到其他硬盘,需要使用 duplicati 内置的云服务商进行备份,且文件较大,则可以关闭文件校验,避免备份后下载...

ROS in Docker

 主要参考 An Updated Guide to Docker and ROS 2 Docker 安装 Docker Desktop 为了统一性,在 Linux 上为虚拟机,请安装 Docker Engine: FAQs for Docker Desktop for Linux 管理容器和镜像使用 VsCode 的 Docker 插件就够了。 Dockerfile 编写 参考 turtlebot3_behavior_demos_dockerfile osrf镜像 https://github.com/osrf/docker_images 通常 osrf 开发,ros官方生产部署。 base 层从现有镜像开始,适配项目所需环境(设备驱动,功能包依赖)。 overlay 层将代码复制到镜像内,一般用于部署。 dev 层适配项目开发环境,将代码直接映射至容器内。 可能会用到的实用工具参考 https://github.com/sskorol/ros2-humble-docker-dev-template docker-compose.yml 参考 turtlebot3_behavior_docker_compose 根据镜像层分为三个服务,将配置设置分开,使用时仅需启动对应的一个服务。 如果是部署,则基于 overlay 层配置,编写 command 参数启动相应服务。 如果是开发,则启动 dev 层服务。 如果需要用到显卡 https://github.com/dusty-nv/jetson-containers https://github.com/niladut/ros2-docker-workspace