Author Archives: John

操作无法完成,因为磁盘管理控制台视图不是最新状态

这个愚蠢的对话框给出的方案是

1.关了窗口重开一次

2.关了窗口(整个Windows系统)重开一次

重启后仍然复现,坚硬的如同石头一般。

场景:

一块动态硬盘,尝试增加RAID1

结果:

操作无法完成

解决:

网上搜了一圈,答案很可笑,不过提供了一个思路:分区表有损坏

回想起来,可能是某一次发现磁盘分区前端有几百M的空余空间,本着不浪费的优良传统,用diskgenius把那一点空间塞进分区里了。

接下来就尝试继续用diskgenius修复有小毛病的分区表,为什么是小毛病?因为分区一切正常用了快两年了,没有留意到任何异常状况

先给分区前后都留了1GB的空余空间,不要问为什么,我也不知道为什么系统自带的RAID在磁盘没有空余空间的情况下无法创建成功

然后把磁盘从动态转基本,再把分区表从GUID转到了MBR

完了重启,再打开计算机管理,RAID创建成功。

ModeSDeco2 服务安装和后台运行

ModeSDeco2是个简单又暴力的ADS-B解码器,自带web界面,没有GUI,天生就适合作为服务来运行

下载地址:http://xdeco.org/?page_id=30

目前最新版本是:modesdeco2_windows_20180429,原作者扔到Google Drive了,国内下载略费力,顺手做个镜像:

https://johnliu.info/wp-content/uploads/2019/06/modesdeco2_windows_20180429.zip

下载后解压,扔到modesdeco2文件夹,先测试下

首先请确保已有RTL-SDR可以正常使用

文件夹里有个modesdeco2_example.bat,右键编辑,根据自己的环境和需要修改,重点关注的参数:

–beast Beast输出端口
–avr AVR输出端口
-sbs10001 SBS-3输出端口
–location 当地经纬度,格式经度:维度,西经和南纬用负数
–metric 米制单位
–web web服务器端口
–db baseStation.sqb位置,没有可以从这里下载:http://johnliu.info/wp-content/uploads/2019/06/BaseStation.sqb

我自己用到的启动参数是:

–location 88.888:111.111 –web 8080 –db d:\Soft\modesdeco2\db\basestation.sqb –metric –beast 31001 –avr 31002 –sbs10001 31003

其余设置项文档里很清楚

保存,双击,会得到一个黑乎乎的cmd表示已经在干活了

没有任何异常就可以准备安装为服务,下载NSSM:

http://nssm.cc/download

开一个管理权限的cmd,nssm.exe install SERVICENAME,接下来跟着GUI就很简单了,完工,启动服务,就可以从浏览器打开127.0.0.1:8080看看效果了

 

有个BUG在于,这货默认用了Google地图,需要翻墙……

timedatectl

根据Ubuntu的说法:

ntpdate is considered deprecated in favor of timedatectl (or chrony) andthereby no more installed by default. timesyncd will generally do the rightthing keeping your time in sync, and chrony will help with more complexcases.

timedatectl 用起来非常简单,默认配置文档在/etc/systemd/timesyncd.conf

最简化内容:

[Time]
NTP=
FallbackNTP=pool.ntp.org
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048

通常不需要做任何改动,如果要增加自定义的ntp服务器写在第一行,空格分隔

启用:

timedatectl set-ntp true

如果报错:Failed to set ntp: NTP not supported.
自己动手干掉已有的ntpd或者ntp再来,还是不行自己动手装chrony

查看状态:

timedatectl status

大概这样就是启用成功并同步成功了,据说需要一些时间

Local time: Fri 2019-06-14 14:28:52 CST
Universal time: Fri 2019-06-14 06:28:52 UTC
RTC time: n/a
Time zone: Asia/Shanghai (CST, +0800)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

设置时区:

timedatectl set-timezone Asia/Shanghai

虽然似乎有点ZZ不正确的样子(从小到大都只知道北京时间),据说是因为:

The reason why Asia/Shanghai is used instead of Beijing is because Shanghai is the most populous location in the zone.

印象中以前折腾Ubuntu时候还有Asia/Chongqing,也被backzone了

Asia/Kashgar, Asia/Chongqing, and Asia/Harbin, are kept in the “backzone” file of the IANA timezone database for backward compatibility.

重启:systemctl restart systemd-timedated

Debian通过,Centos不知道为什么死活不同步,不管了

ref:

https://wiki.archlinux.org/index.php/Systemd-timesyncd

https://en.wikipedia.org/wiki/Tz_database

https://en.wikipedia.org/wiki/Time_in_China

 

用NSSM把exe注册为服务

搜了一下,看起来非常简单

To create a Windows Service from an executable, you can use sc.exe:

sc.exe create <new_service_name> binPath= "<path_to_the_service_executable>"

但是:

Note that it will not work for just any executable: the executable must be a Windows Service (i.e. implement ServiceMain). When registering a non-service executable as a service, you’ll get the following error upon trying to start the service:

Error 1053: The service did not respond to the start or control request in a timely fashion.

那就只能用第三方的了,有人推荐用NSSM:

http://nssm.cc/download

NSSM – the Non-Sucking Service Manager

名字简单又暴力,使用也是很简单暴力

下载,解压,找到32或者64位的exe

开一个管理权限的cmd,nssm.exe install SERVICENAME

回车,就有gui了,跟着gui走,完工

用软连接给webmin配置let’s encrypt SSL证书

let’s encrypt证书很好用,唯一缺点就是有效期短,需要脚本自动更新,没太搞懂webmin里的那个鬼插件怎么用,就直接很暴力的用ln软连接搞定了

ln -s /etc/letsencrypt/live/domain.name/fullchain.pem /etc/webmin/letsencrypt-ca.pem

ln -s /etc/letsencrypt/live/domain.name/privkey.pem /etc/webmin/miniserv.pem

ln -s /etc/letsencrypt/live/domain.name/cert.pem /etc/webmin/miniserv.cert