Herald Yu

Herald Yu

440 posts published

Music

认真地老去

《认真地老去》张希、曹方忘了什么时候开始 到清晨才能入睡 也忘了什么叫做结尾 又有谁在乎呢 凌晨三点的窗前 播放着那段时光 有一个骄傲的少年 隐藏他的青春 不如让我忘了自己 你觉得怎么样呢 在每个向往的地方 释然一个遗憾 躺在我怀里的吉他 好像厌倦了我 重复最熟悉的段落 好像无话可说 这生命正值春光 别装作刀枪不入的模样 别错过年轻的疯狂 时光很匆忙 别错过日落和夕阳 不论在哪里呀 来不及认真的年轻过 就认真的老去 又一次和你擦肩而过 一毫米的距离 让我再次抱起吉他 为你唱那一首歌 重复最熟悉的段落 就当明天不在 没有永远的年轻 没有唱不完的歌 当所有人都离去 我也将要离去 这生命正值春光 别装作刀枪不入的模样 别错过年轻的疯狂 时光很匆忙 别错过日落和夕阳 不论在哪里呀 来不及认真的年轻过 就认真地老去 又一次和你擦肩而过 一毫米的距离 别错过年轻的疯狂 时光很匆忙 别错过日落和夕阳 不论在哪里呀

Windows

在 Windows 11 上读取 ext4 文件系统

Windows 10 或 11 上读取 ext4 可以借助 WSL 实现,首先参考安装 WSL。 然后参考 WSL 2 挂载 Linux 磁盘 执行命令查看磁盘列表: PS C:\Users\herald> GET-CimInstance -query "SELECT * from Win32_DiskDrive" DeviceID Caption Partitions Size Model -------- ------- ---------- ---- ----- \\.\PHYSICALDRIVE0 SAMSUNG MZVLB256HAHQ-00000 3 256052966400 SAMSUNG MZVLB256HAHQ-00000 \\.\PHYSICALDRIVE1 HIKSEMI

Backup

家庭数据备份方案

自从大二装国产 Linux 误删了硬盘中积累了多年的照片,我对数据的存储和备份有了敬畏之心,这可能也是我后来投身存储领域的潜在动因吧。 于我们家庭而言,照片视频是最宝贵的数字资产。从 2005 年至今,我们一直会比较认真的归档每个月的照片,目前累计 800GB 左右。 昨天下午江苏盐城海域发生了 5.0 级地震,上海有很明显的震感,虽然的确如网上所说,大家都觉得是自己疲劳过度导致的眩晕,但地震过后,我不时的会联想到地震毁掉了 NAS,就是那个存有 800GB 数据的服务器。 其实家庭相册并不是只有 NAS 里这一份,我和老婆真的很担心它发生意外,所以在很久很久以前,老婆用 USB2.0 的移动硬盘做过离线备份,硬盘放在苏州我父母的家里。我还额外用一个 1TB 的硬盘对它做了另外一个离线备份,会定期的接到 NAS 上同步最新的数据。但这个 1TB 的盘也放在上海家里,它只是 NAS 的一个灾备。保险起见,

React

Docusaurus v2 获取当前页面超链接

Docusaurus 是基于 React 的文档生成器,也可以说是在 NextJS 的基础上改进而来的程序。 当需要获取当前页面超链接时,可以使用 JS 的 windows 全局变量,例如: console.log(window.location.href) 但直接在组建中使用 window 会导致 build 报错,程序会建议使用 useEffect,即 React 的 Hook。 使用示例: import React, { useState, useEffect } from 'react'; const [pageurl, setPageurl] = useState('') useEffect(() => { setPageurl(window.location.href) }) console.log(

markdown

Markdown 页内跳转 ToC

对于内容较多的 Markdown 文档,通常会在页头创建一个 ToC 导航,以各个段落标题为锚点。在手动创建时一般需要注意以下几点: 1.纯英文标题时 所有单词改为小写,空格使用 - 替换。例如:[My Title](#this-is-my-title) 当标题中有 / 等符号时,也使用 - 替换。例如:[ That/s My box](#that--s-my-box) 2.中英文混合时 所有单词改为小写,空格使用 - 替换。例如:[这是 Tom 的书包](#这是-tom-的书包)

Rancher

Rancher 忘记密码如何重置?

对于安装在 Docker 上的 Rancher,可以在宿主机执行以下命令重置管理界面的密码,例如: $ sudo docker exec trusting_buck reset-password New password for default admin user (user-ssggz): tkk0z67Tdoh8GpQzB4UI 其中,trusting_buck 是 Rancher 所在的容器名。重置后的用户名和密码如下: 用户名:admin 密码:tkk0z67Tdoh8GpQzB4UI References https://github.com/rancher/rancher/issues/12697#issuecomment-383651948

前端

Gatsby 3.13 + Strapi 3.6 + React-markdown 故障排查

美好的十一国庆节假期,陪孩子、睡懒觉、看各种前端资料。儿子5岁了,再也不用像之前那样寸步不离,他会找自己喜欢玩的东西。就算是缠着我下楼玩,也不用我时时刻刻的当他的拐棍,特别是他最近社交技能提升,玩秋千会排队、会交涉,也会抢,为父甚是欣慰。 言归正传,这几天以 Strapi 为数据源,分别试用了 Next.js 和 Gatsby 两款开源的前端框架。首先说 Strapi,真乃神器!本质上他是一个内容管理器 CMS,但与传统的 CMS 不同在于它不直接提供前端界面,只按照需求对外暴漏 API,它的逻辑非常灵活,你可以用预置的各种字段去组装需要的内容类型。可以很轻松的创建各种单页面、文章博客或是产品列表,然后直接在 Strapi 上面管理相应的内容,它通过 API 对外提供各种内容类型的数据,使用 react 或 vue 等前端框架从 API

SSH

SSH 通过跳板机访问内网主机

SSH 通过 -J 指定跳板机,所谓跳板机就是我们可以通过外部访问的内网主机,通过跳板机作为通信代理,就可以访问跳板机所在的内网中其他的主机。 跳板机:root@pve.local 内网目标主机:almalinux@192.168.1.61 连接方法: $ ssh almalinux@192.168.1.61 -J root@pve.local 转发内网主机端口到本地 进一步的,比如要将内网目标主机上的 cockpit 界面映射到本地访问,可以这样设置: $ ssh -L 9090:192.168.1.61:9090 almalinux@192.168.1.61 -J root@pve.

几个事儿
Stories

几个事儿

一 有关孩子教育的问题,我总是心虚,因为我自己还没看明白这个世界,这些里里外外的事情我怎么才能跟儿子说清楚呢,显然是说不清的。小的时候还好忽悠,长大可能就会恍然意识到原来爸爸在忽悠他。 二 朋友有很多种,我想交往的是能参加我葬礼的。 当然,我可能没有葬礼。 三 人不能和心智作对。 高露洁之于牙膏,耐克之于运动鞋,雀巢之于咖啡,例子不胜枚举。 设想一下,如果高露洁要做洗发水,耐克要做电视,雀巢要做耳机,如果你是推销员,说服人们购买这些产品该是多大的挑战。谁愿意用牙膏洗头呢? 你我也是如此,你给人留下第一印象非常重要。 四 昨晚做梦哭醒了,我梦见自己找不到妈妈了。

rclone

rclone: 文件备份到腾讯云 COS 深度归档存储

rclone 是我目前用过操作对象存储功能最完整、使用最简易的工具。 家里现在使用 Nextcloud 网盘作为统一的文件管理界面供每个成员使用,使用外部存储插件去访问本地的 minio 对象存储。minio 通过策略定义实现每个用户独享的和共享的 bucket。 本地的 minio 是 4 盘位 EC:2 结构,可以保证任意 2 块硬盘上的某个文件对象同时损坏,数据不会丢失且可自愈。家庭环境来说,这个保护级别已经足够了,但是把握起见,还是决定做一个异地备份。 minio 上的数据通过 rclone 定期手动备份到腾讯云 COS 深度归档存储,目前总数据量不足 1TB,资源包只要 120 元左右一年,存储成本非常低。 深度归档存储的特点是存储单价非常低,不过一旦需要恢复数据时,需要付出高昂的费用代价。所以我把深度归档存储纯粹当做一份保险,数据灾难时的最后一丝希望,没有意外不会请求解冻。 腾讯云 COS 深度归档存储 在

Manjaro

Manjaro KDE 安装微信

参照 ArchLinux Wiki 中提供的几种安装微信的方法,实际使用下来,感觉 com.qq.weixin.spark 是最理想的,这是 deepin 社区封装的一个版本,基本与微信版本保持同步。 安装 $ yay -S com.qq.weixin.spark 使用 直接在菜单中找微信运行,第一次运行需要在 Wine 中执行初始安装,全部保持默认选项。安装完毕就和在 Windows 系统中一样了,扫码认证登录。 输入框中文乱码 我的系统版本是 Manjaro KDE 21.0.7,运行微信之后,界面正常显示中文,但输入框里面中文会显示成黑色方块。参照 这篇文章 成功解决乱码问题。解决步骤大致如下: 下载 Windows 的 simsun.

Ubuntu

Ubuntu Server 20.04.2 HWE 安装 RTL 8125B 2.5GB 网卡驱动

Ubuntu 从 20.04.2 开始,在系统安装引导菜单中多了一项 HWE 内核支持,这个内核的作用是让 Ubuntu 提前支持更多的新款硬件。 手上的机器是 RTL8215B 的 2.5GB 的网卡,这款网卡的驱动被加入到了 Linux kernel 5.9,但 Ubuntu server 20.04 的 HWE 内核也只是 5.8 内核,所以还是要手动安装驱动程序。 官方下载:https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software 下载2.5G Ethernet LINUX driver

JuiceFS

JuiceFS 共享文件系统

今天无意中在Github上发现了JuiceFS,它是Juicedata公司在2021年1月开源的项目。 项目本身应该是从2017年开始做的,只不过最近才正式开源。 JuiceFS 的工作原理是结合 Redis 高速缓存和对象存储,实现一个高速度的FUSE虚拟文件系统。我个人感觉是因为引入了Redis高速缓存,所以它能以更接近原生文件系统的性能实现对云存储的读写。当然,要实现原生文件系统的操作体验,还需要很多底层的技术细节。 项目主页中的测试信息显示,相比于亚马逊的EFS和开源的s3fs,JuiceFS 有显著的性能优势。 其实JuiceFS和s3fs的应用逻辑是类似的,都是通过FUSE把云存储挂载在本地当成文件系统来使用,但s3fs使用起来的确效果不理想,实测发现s3fs的表现远不如rclone mount。 目前测试JuiceFS来看,效果还不错,接下来还要做进一步的测试。因为JuiceFS是商业公司驱动的开源项目,有盈利需要,所以目前看下来官网和开源仓库是两条文档线路。 官网的指南是针对商业用户的,并且把JuiceFS的使用分成了免费、专业和商业三个等级,官网有图形化的用户界面创建文件系统,另外还提供了一个Python开发的脚本来处理挂载相关的事宜,给人的感觉就是更一气呵成,更简单直观。 Github 仓库那边则是纯手工操作,文档也相对比较分散,配置起来要多费些功夫。 不过话说回来,JuiceFS开发团队是很厚道的,把自己开发的优秀产品开放出来的也是值得尊敬的,而且文档虽然有些分散,但相关资料在仓库里都能够找到,所以就给这个项目点赞吧。 如果有机会,很愿意和JuiceFS开展一些合作。 相关资源 How

Docker

docker 映射 fuse 类型的存储目录

尝试使用rclone的mount挂载s3对象存储到本地,想把挂载以后的目录映射给docker容器使用,但在创建容器的时候会报错: docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /path/to/you. 解决办法是启用fuse的allow_other选项,编辑配置文件/etc/fuse.conf,删掉 user_allow_other前面的#号,启用这个功能。 然后重新挂载s3存储,添加 -o allow_other 参数: $ rclone mount minio:memory /mnt/s3 --allow-other

hash

Linux 计算文件哈希值

哈希值可以用来证明文件的完整性,同一个文件,在相同哈希算法下得到的哈希值是相同的。 比如,计算图片 IMG_9414.JPG 的哈希值,并将结果写在 IMG_9414.sha256sum 文件中: $ sha256sum IMG_9414.JPG > IMG_9414.sha256sum $ cat IMG_9414.sha256sum 51a4e8abfa19ba7e911606f359ced828c51b8dfa5f72b6ea34ef0bb58290b15e IMG_9414.JPG 注意:GNU 系统上二进制模式和文本模式没有区别。

minio

minio 创建一个类似“家目录”的组策略

以下配置使用了配置变量,实现多用户家目录的功能,用户只能在与自己用户名相同的bucket里面进行完整的读写访问。PS:假设这里的对象存储服务器别名是 minio 创建配置文件 home.json { "Version": "2012-10-17", "Statement": [ { "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::*"], "Condition": {"StringLike": {"s3:prefix": ["

OMV

如何通过硬盘LED灯,识别NAS上的特定硬盘?

这里说的NAS机箱主要指的是有活动硬盘插槽的机箱,其实1U、2U等机架式的服务器也适用。 当在系统中检测到某个硬盘有坏道的时候,可以通过让故障盘的硬盘灯亮起来,从而快速定位硬盘。 方法非常简单: $ sudo dd if=/dev/sdb1 of=/dev/null 使用 dd 命令,从指定的盘上写数据到 null 设备。命令一旦执行,硬盘就会开始工作,硬盘LED灯就会亮起来,就可以瞬间找到它了。

Manjaro

Manjaro KDE OBS 录屏闪烁问题

小米笔记本 Air,双显卡。安装的 Manjaro KDE 桌面,用OBS录屏会闪屏,感觉应该是桌面管理器在重新渲染界面。 参考网上的建议,修改系统设置-显卡与显示器-显示特效混合器,修改如下: 取消勾选“开机时启用显示特效混合器” 缩放模式:锐利 渲染模式:xrender 延迟:首选低延迟 防止撕裂:自动 保持窗口缩略图:只对显示的窗口 启用“允许应用程序阻止特效混合”