Jacques-YQ 发布的文章

搞了个6盘位的星际蜗牛NAS,下面是记录。

硬件组装

本质上就是一个多盘位的电脑,但用起来和电脑有很多不同。只需要插网线和电源就行。
如果插HDMI开机,只会显示4行字就卡在那儿不动了。

Booting `RedPill DS918+ v7.1.0-42661(USB, Verbose)`

Loading Linux...
Loading initramfs...
Loading kernel with USB boot
_

这就是正常的了。
网线和有网口的电脑直连,不需要开DNS或者配置电脑IP,用默认的169.x.x.x的IP就可以。
准备一个空白SATA硬盘(或者是数据已经备份的),插入NAS,这个硬盘将被格式化。

安装软件

王航卖家说已经装好了群晖 DS918+的固件,也就是在内置一个SSD上装的img文件。需要用启动盘来装。网上有卖,也可以自己做。
群晖网站下载.pat系统,需要和硬件以及固件系统一致,如DS918+v7.1.0-42661
下载Synology Assistant并安装,点击搜索,会搜索出来网线直连的NAS,点击进入管理主页,选择.pas进行安装。
后面都会在浏览器中操作。
填写用户名和密码,要记牢。这是以后的网页登录、ssh登录、smb登录的用户名密码。
跳过自动更新(一定要选手动更新)和注册群晖账号。
装好以后,先修改一个和路由器同网段的静态IP、网关、DNS,注意不要和已有IP冲突。
等待设置完毕,把网线连回路由器,电脑也连上路由器,浏览器访问刚才的设置的IP地址进行管理。
可以开启ssh和文件共享。

直接使用NTFS硬盘的方式

加入NAS的硬盘,如果使用在存储管理器>存储空间中创建存储空间的方式增加,则硬盘必须被格式化,以便设置为群晖的硬盘类型。群晖基于ext4或者btrfs磁盘格式组建RAID。为便于后期增加磁盘扩展,又有几种扩展格式,即SHR、Basic、JBOD。建议Basic类型。
如果是从Windows系统过来的数据盘,一般是NTFS格式的,则不能用上面的方式加载,而是需要用linux的mount命令,使用root权限加载。
这时候需要知道什么磁盘加载到什么位置。

什么磁盘

存储管理器>存储空间中可以看到什么磁盘,如磁盘1磁盘2等等,这与linux的磁盘有对应关系,即sda sdb等等
群晖磁盘名|linux磁盘名
--|--
磁盘1|sda
磁盘2|sdb
磁盘3|sdc
磁盘4|sdd
磁盘5|sde
磁盘6|sdf
分区则对应是数字,如sdd1则是1号分区,sdd2则是2号分区。但是分区有时候并不连续,最好可以通过ssh username@ip的方式登录上去看看。
查看当前有哪些磁盘分区:

ls /dev/sd*

查看每个分区的大小和格式化类型

sudo fdisk -l

查看已经挂载的分区的情况

df -h

如上,比如发现了sde2 sde5使我们需要挂载的分区,这一步结束

挂载到哪儿

回到web页面:

  • 控制面板>共享文件夹,增加共享文件夹,如T2,设置名称并取消回收站功能。
  • File Station选择刚才创建的T2新建文件夹,普通文件夹即可,如C D,对应C盘和D盘。右键看下文件夹属性,应该是/volume1/T2/C/volume1/T2/D这样的。这一步结束。

    撰写挂载Linux脚本并挂载

  • 控制面板>最下面的任务计划新增》触发的任务》用户定义的脚本,用户账号改为root,事件为开机,用户设置的脚本写mount命令:
mount -t ntfs /dev/sde1 /volume1/T2/C
mount -t ntfs /dev/sde2 /volume1/T2/D

保存。因为是root权限,会有一条警告,确认即可。这样开机就可以运行了。点右键可以立刻运行一次。然后到File Station里查看T2/C和T2/D就能看到了。

SAMBA(SMB)协议共享及问题

控制面板>文件服务中可以启用SMB协议。
但问题是通过mount挂载的硬盘会从smb共享中消失,umount以后又会出现。所以SMB只能看到通过存储管理器增加的RAID盘。

WebDAV文件共享

在安卓手机端的CX文件管理器中发现支持WebDAV文件共享,不过DSM默认没有安装webdav服务,需要在套件中心中下载并安装启用。
webDAV中能够看到所有共享的硬盘资源,包括ntfs mount的硬盘。并且视频文件不需要下载就可以观看。推荐!复制粘贴的体验也和一般文件夹无异。
Windows 10端WebDAV需要修改注册表和开启服务。

  • 注册表修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel键值为2
  • 命令重启网络服务net stop webclient, net start webclient
  • 服务中开启webclient服务
  • 在Windows文件管理器中添加一个网络位置或者映射网络驱动器,链接位置写http://IP:Port, webdav http端口默认5005, https端口5006,不过实测5006打不开不知道为啥
    Windows10链接的磁盘似乎有点问题。我有个3T的盘就无法打开。

NFS文件共享

windows 10 home版本不支持,需要专业版才有nfs服务功能。第三方的nfs客户端几乎没有能用的。

FTP、SFTP共享

很奇怪,FTP在默认21端口上无法访问;开启SFTP使用Winscp才解决。
另外,windows 11 通过添加一个网络位置的方式对SFTP的支持有问题,会导致文件管理器窗口死机,且无法删除这个创建的网络连接

通过SCP共享

参考:https://phoenixnap.com/kb/sshfs
Windows 11 完美解决的方式是SCP,不过需要安装开源的第三方插件 winfspsshfs-win. 可选装sshfs-win-manager来进行GUI管理
安装完后,在添加一个网络位置中输入\\sshfs[.option]\<remote user>@<remote host>[!port][\path], 例如:
\\sshfs\user@192.168.3.3,然后输入用户名和密码。

局域网唤醒和上电唤醒

NAS bios修改

需要打开bios修改。NAS插上HDMI显示、接上USB键盘,开机狂按F11或者F7可以进入bios设置。修改对应设置即可。

群晖系统修改

需要在控制面板>硬件和电源>常规>电源自动恢复勾选启用局域网1的网络唤醒

远程唤醒准备

需要知道NAS的IP和MAC地址。IP是自己设置的,可以在控制面板>网络>网络界面中查询到。MAC地址可以找一台局域网内的电脑,在命令行输入arp -a查询对应IP的mac地址。如果没有,可以ping 对应IP后,再次arp -a来获取mac地址。

MAC上远程唤醒

mac上可以在mac商店里搜索wol或者直接下载WakeOnCommand。新增并填入IP/MAC地址即可。

Android上远程唤醒

谷——歌——商店下载wake on lan,也是增加IP/MAC即可。

Windows上远程唤醒

下载Nirsoft WakeMeOnLan软件,增加IP、MAC即可。

PS:目前硬盘的放置方式

有三个盘是旧盘,其中一个盘数据最少,备份出来,在安装群晖pat系统时候格式化为btrfs,作为系统安装用盘. 另外两个盘用原ntfs系统, 原数据,通过linux脚本mount命令挂载在文件夹中, 另外再买了两块4T紫盘组成RAID1作为最安全的数据存储.买4T的原因仅仅是因为现在(2022/12)4T最划算. 机械硬盘容量这几年似乎没有很大增长, 我八年前就买了3T盘, 十几年前就买了2T盘, 现在容量主流居然才是4T. 价格也没有很大下降, 似乎早已脱离的摩尔定律的制约了.

PS2:概念

iSCSI ICFS NFS

https://new.qq.com/rain/a/20210315A06ZTL00

从来没有把硬盘用到完全挂掉,但小米路由器成功地做到了。

以前硬盘最多是用到有坏道,而且是可以提前感知的。硬盘反复读取、吱吱作响,但不至于无法挂载或者文件系统坏掉。
而这次小米硬盘内置的1T三星2.5寸硬盘完全无法挂载、文件系统完全丢失了。
虽然网上对小米R1D路由器早有批评之声,说把路由器这个可能随时断电的系统放在硬盘上本来就很不可靠,而且会导致硬盘损坏数据丢失,但我却一直有侥幸心理,直到被现实暴击的这一天。个人数据非常重要但不会频繁读取,而系统数据却是会频繁读取导致硬盘寿命缩减。小米路由确实应该在发现硬盘读写存在问题前早点通知用户更换硬盘的。
话说,今年我已经因为SSD盘提示SMART故障换了一次了。
说说发现的过程和恢复的方法。

  1. SMB失效。首先发现通过smb无法访问硬盘。我用的是cx文件管理器,开始还以为是这个app的问题,安装了讨厌的广告巨多无比的ES文件管理器发现现象一样。我还重启了手机,还是不行。由于smb协议本身不稳定的传说,我第二天再次尝试,还是不行。此时才想到登录到路由器上看看。
  2. 路由器进入安全模式。通过网页登录路由器,发现登录界面不大一样了。默认手机登录时的界面是会适配手机的,结果发现界面变成了PC版本,输入框很小。登录以后发现路由器处于安全模式,给了两个选项:尝试恢复系统、备份硬盘。此时我还没有怀疑硬盘问题,先是断电重启了两次,故障相同。点击备份硬盘,过了好几十秒弹窗提示硬盘无法挂载。此时发现:可能是硬盘的问题。
  3. 尝试DiskGenius并放弃。下载并尝试DiskGenius,发现对于数据恢复是需要购买专业版本的,而且价格不菲,需要五六百块钱。这个价格我还不如用淘宝的数据恢复服务,似乎还便宜得多。
  4. 尝试GParted缩小问题范围。通过Alternativeto网站推荐的GParted,找了个U盘,用GParted推荐的软件Unetbootin安装LiveCD AMD64版本。我是Intel CPU但是i686版本运行不起来,很奇怪,也可能是U盘有问题。启动后,发现虽然找硬盘要一两分钟,但是还能够发现这个硬盘的正确型号、容量,也识别出来了分区类型是Ext4。一共四个分区,前三个都很小,不到1G,最后一个分区占用了绝大多数空间,应该就是数据分区了。并且后两个分区有个黄色三角感叹号,表示读取有问题。尝试对分区Check,发现Super Block不能读取,Super Block是挂载分区必须的文件,有多个备份,按照这篇文章尝试恢复super block以及从备份的super block直接挂载,都失败了。再用Gparted里面的Device → Attempt Data Rescue选项尝试救援,但被告知无法读取file system文件系统。至此GParted恢复失败,但知道了Super Block, File System都不能指望了。文件系统是文件名和文件树存储的地方,丢了这个意味着文件名也都丢掉了。下面只能尝试绕过文件系统恢复文件了。
  5. 尝试TestDisk PhotoRec,恢复中。PhotoRec是TestDisk中的一个子软件,可以绕过文件系统直接恢复文件。应该是通过文件内容猜测文件类型,所以这个也只能受限于软件已知的文件类型了。据称可以恢复数百种文件类型。TestDisk的作用是恢复分区表,比如说是错误的删除了分区就可以恢复。通过GParted知道这个盘分区表没有丢,所以不需要使用,直接用PhotoRec就可以,官方教程图文并茂,可以依靠,绝大多数默认选项即可。只是在选择Free/Whole这一步的时候,默认选项Free是用来找回手动删除的文件的,这儿需要选择Whole,从全盘找回文件。PhotoRec恢复时间非常长,几个小时也才恢复了几十M而已, 这样下去不得恢复个好几年。网上搜索PhotoRec恢复时间的,确实有人说要恢复好几年。。。
  6. 尝试ddrescue. 使用ddrescue,先克隆到另一个好的磁盘里面。一开始速度还可以,有20M/s左右,过了一晚上,只有0.5M/s了,预计需要22天,没办法,只能找淘宝。
  7. 淘宝。先是10元做了一个远程,发现读写很慢,要求寄盘检测,同时寄一个好盘用来copy数据。报价是:不开盘150元,开盘450元。过了一天,通知我磁头损坏要开盘。。。虽然肉痛也只能答应啊。
    跟淘宝商家的客服和技术都确认了一下问题,是磁头坏了。在B站上看了有的恢复硬盘的视频,确实有磁头坏了的情况。与前面我试图软件恢复但恢复时间以年计算这一点来看,似乎也比较符合磁头损坏造成的结果。从我自己的PhotoRec软件恢复结果来看,无分发读取文件系统,恢复的照片中也有一张只有一半图像,看起来好像是磁头缺少磁力不能很好读取。
    从对方收到到对方寄出一共花了4天时间。第一天白天跟我确认是磁头问题需要开盘,当天晚上确认开盘。第三天中午跟我确认了恢复的数据目录和几个照片是否能打开,第四天早上说已经复制完数据,准备寄回。

硬件产品(除了PCB以外)有些问题是最让人担心的, 一旦发生, 就可能导致产品部分或者推翻重来:

  • 干涉. 不同部件空间上相互插入.
  • 强度/力度不够.
  • 表面处理无法达到目标效果

    干涉

    干涉的问题并不总在设计阶段能发现. 导致干涉难以发现的原因包括:

  • 如果产品并非方方正正的造型, 那么在3D图上可能不能找到一个特定的角度观察到干涉.
  • 产品带有转动机构, 在3D图上未能发现在一个特定的角度干涉
  • 产品的部分组件不是结构工程师完全设计, 导致这部分组件在结构设计时不能完全呈现, 以至于发现不了干涉. 这其中尤其是PCB. 上面设计的LED灯/触摸弹簧/电容都可能与结构设计发生干涉.

PCB与产品结构干涉包括:

  • LED指示灯干涉. LED指示灯一般要通过结构透光出来, 结构上为了透光会做一定的设计, 如套筒等, 这要求LED的位置与结构套筒位置精确匹配, 包括焊点在内不能与LED灯产生干涉. 此时, 最好由结构设计师明确圈出LED灯的摆放位置
  • 触摸弹簧干涉. 触摸弹簧有一定的高度, 并且在结构中需要被略微压缩, 并保证压缩后不偏位, 因此触摸弹簧同样需要结构有套筒套住. 结构设计师也需要明确指出套筒摆放位置
  • 结构投影PCB干涉. 在结构工程师指出LED和触摸弹簧位置时, 可能由于结构件出模方向与PCB板不垂直, 导致结构设计师指出的LED和触摸弹簧位置是垂直投影位置而不是出模方向的投影位置, 进而导致干涉. 应设计为出模方向的投影位置.
  • 电容等有高度的器件干涉. 在PCB设计完成前, 结构工程师不知道电容的高度和布局, 导致实物干涉. 现在电容多采用贴片电容, 最高高度有10.5mm之多, 结构设计师设计时经常把PCB简化成一张薄板, 导致设计出的成品与PCB干涉. 由于PCB与结构设计同步开发, 这一步可能在开模后才能发现, 导致巨大损失. 结构工程师应为大功率器件区域预留相当高度(至少10mm空间), 并且功率越高的预留应越高空间. 提前与电子工程师沟通电容/电感/线圈等大个头器件布线位置和需要预留的高度, 在结构设计中用立方体占位.

干涉还可以在组装环节发现, 包括结构样机组装和T0开模样机的组装.

  • 结构样机组装可以发现大部分干涉问题, 但由于结构样机的不精确, PCB设计未完善, 包材未完成设计打样不能做跌落测试等问题不能发现干涉.
  • T0样机组装. 这一步应完成包材设计, 并做跌落实验. 跌落实验后检查损伤, 可以及发现强度/力度不够和干涉的问题.

强度/力度不够

产品较重或者有配重/旋转机构的时候, 需要注意:

  • 产品正常跌落和运输跌落的时候, 产品的结构能不能保护产品
  • 产品的旋转结构所用的阻尼件(转轴/螺丝/扭簧等)能不能在关节位置有效撑起产品. 不能有效撑起时需要对结构甚至外观做重大修改, 导致延期和模具损失

表面处理CMF

表面处理是在某一指定材质上, 展现指定颜色/图案/光洁度的工作. 所指定的颜色/图案/光洁度都受到材质本身和工艺的影响. 错误的设计导致指定效果完全不能达到或者成本极高, 导致产品失败.
设计师要明白, 在特定材质上能实现的颜色/图案/光洁度都是有限的, 并非什么颜色都能做, 什么图案都能印, 什么光洁度都能实现.

看到央视转发腾讯医典的文章,确实这些年都用错了. 当然也可能是医学不断有新知, 跟计算机一样,旧的知识过期很快.
参考: https://mp.weixin.qq.com/s/ynM7asQa445TbMG9vgnEIg
现在开放伤口消毒的唯一推荐就是碘伏. 伤口冲洗推荐是清水.

类型 成分 用途 禁忌
医用酒精 乙醇+水 皮肤消毒 不可用于开放性伤口消毒
碘伏 碘络合物+水 伤口消毒 碘过敏和甲亢禁用
碘酒 碘/碘化钾/乙醇 皮肤消毒 碘过敏和甲亢禁用
双氧水 过氧化氢 伤口冲洗 对组织高毒性,结痂期禁用
红霉素软膏 1%红霉素/液蜡/凡士林 治疗和预防皮肤感染 超过1周使用会耐药

另外,百多邦喷雾中主要有效成分是苯扎氯铵, 杀菌效果很好,但长期大量使用(如消毒巾中使用)会导致哮喘等过敏性疾病, 孕妇使用导致胎儿畸形 参考文档

已禁用的消毒剂:

  • 红药水: 汞溴红, 含汞, 会引起汞中毒, 并且没什么消毒作用, 不知道这玩意儿怎么用了这么多年
  • 紫药水: 甲紫/龙胆紫, 有一点点消毒作用, 可以使皮肤提前结痂, 但安全性同样有问题, 吸收后可致癌
    另外, 酒精已经是一类致癌物了, 甚至还是癌症的主要原因.

如题。
参考文献:
https://blog.csdn.net/u013014254/article/details/122045331
https://blog.csdn.net/qq_29654777/article/details/122903558

国内替代如下,以vuetify资源搜索为例:
bootcdn, 问题是不知道怎么找历史版本
字节cdn,虽然界面简陋了点但是很好用,速度快且支持历史版本
基于七牛的staticfile,搜索比较慢,也找不到历史版本
ban了以后才知道jsdelivr有GitHub加速功能。

参考: https://stackoverflow.com/questions/3378560/how-to-disable-gcc-warnings-for-a-few-lines-of-code
http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
示例如下:

#pragma GCC diagnostic error "-Wuninitialized"
    foo(a);         /* error is given for this one */

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
    foo(b);         /* no diagnostic for this one */
#pragma GCC diagnostic pop

    foo(c);         /* error is given for this one */
#pragma GCC diagnostic pop 

    foo(d);         /* depends on command line options */

pip install pyttsx3

我在MacOSX上安装的,是python2, 有很多语音,需要找到对应的语音。

engine = pyttsx3.init()
voices = engine.getProperty('voices')
for voice in voices:
  if voice.languages == [u'zh_CN']:
    engine.setProperty('voice', voice.id)
    break

engine.say(u'The quick brown fox jumped over the lazy dog.中华人民共和
国。')
engine.say(u'我爱北京天安门,天安门上太阳升。')
engine.runAndWait()

用js的netcat库写的, 很简单, 只是记录一下收到的消息, 用了一个很不常见的socket. 开了半年多, 发现几乎每天都能收到一点攻击.如下:

windows上我用bat做编译,烧录, 复制文件等等操作. 所以好奇make和bash(Linux上更强大的bat)究竟有什么区别?
参考这篇文章, 高赞回答似乎是说make主要是能节省完全重编译的时间, 方法是通过检测编译所需要文件的更新日期, 并且只编译其中较新的文件.这在有成千上万个文件需要重新编译的时候会很节省时间.
所以大体上来说, makefile文件和bash脚本文件功能差不多, 只是makefile多了上面的能力.
当然, 据说makefile的语法非常令人讨厌,不如bash语法那么爽。

make与cmake的区别
参考这篇文字, cmake是与make配合使用的,它其实是生成makefile的工具,不止如此,还能visual studio工程或其他工程, 简单来说就是跨平台的工程文件生成工具。所以,make是编译系统(build system),而cmake是编译系统的构建器(build system generator).

ninja与make的区别
ninja是一个make的替代产品, 主要是解决make启动缓慢和功能复杂(过于强大)的问题

三十年河东三十年河西。兔国初代目追求平等社会三十年,搞钱实在不太行。次代目让有条件的兔子先搞钱,政策至今也四十多年了,基尼系数大得不行。如今大概新的三十年又要开始了,基尼这玩意儿得要降,理想是最好没有。这个怎么搞?是不是学习初代目?兔子们很平等,一样有钱也一样没钱。当然初代目手里没多少底牌,当代目手里底牌要多一些,是不是可以实现?比如按需分钱?太有钱的还不服管的兔子,是不是坚决干掉?如何让普通兔子都同样有钱?

早上忽然想到的,金融本质上是提供和扩大流动性的工具。而金融的本性是将流动性无限扩大。而金融的监管是对金融本性的监管,其防止流动性可能导致灾难的无限扩大。
这里流动指的是物权的变化,即物主改变。流动性就是物权变化的速度。流动性大就是物权变化的速度快。物权有所有权和使用权。金融也会对这两种不同的权利进行流动。
比如,金融的诞生就是货币的诞生。货币的诞生为物物交换提供了非常大的流动性。在要交换的物物中间,以货币为媒介,就好像为这种交换抹了润滑油一样,使交换速度大大加快。
以金融的这个属性来说,不仅银行、保险和证券公司是金融体系,广义来讲讲产品销售体系也是金融体系的一种,因为产品销售体系加快了产品向消费端流动,以及资金反向向生产者的流动。