作者:张华 发表于:2020-04-18
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明
更新
- vim这些工具可以使用 git里自带的会更方便
- 命令行工具可以伤脑筋windows terminal,它是多tab的
问题
新入手了一台笔记本电脑,默认安装了win10,用了十几年linux了,也一大堆linux的vps维护的太麻烦,还是就只使用单系统的win10吧。那样,问题来了,如何像平时使用ubuntu的习惯一样使用linux呢?
CLI工具的选择
国内网络太慢,所以从来不在国内的机器上跑程序,都是ssh到国外vps上来办公的, 这样主要是使用CLI命令,很少或几乎没有使用GUI工具的习惯。所以选择一个好的CLI工具是决定能否继续使用windows的关键。
- 能用wsl吗?wsl将linux系统调用翻译成windows调用, 决定了它仅支持CLI, 当然也可以通过windows上安装xming之类的x server来运行某一些GUI(wsl内运行:export DISPLAY=:0.0),但很多GUI是不支持的如chrome与firefox; 另外,wsl也不支持访问底层硬件所以无法运行python pyaudio之类的程序。wsl的优点它可以通过运行’wsl’快速切换到ubuntu bash;也可以通过’wsl ls’之类的命令实现在windows上直接运行bash命令, 这对我这种只熟悉unix命令不熟悉windows命令的人来说吸引力是很大的。所以wsl要结合着用,但主要就是用它的’wsl ls’之类的方便(后面会讲如何通过alias来使用它)。
- 能用powershell吗?要运行访问硬件之类的python pyaudio程序只能通过powershell, 不能使用ubuntu wsl shell或者cgwin shell. 使用powershell不支持自定义快捷键让我像使用bash的快捷键习惯一样使用它,这个缺点是对我来说是致命的,所以我不能用它。
- 能用mabaxterm吗?mabaxterm同时集成了wsl shell, cgwin shell, powershell, 但这些全如上面说的不合我的需求。所以只能将它作为备用,偶尔用用它好用的x server, scp等功能。我很少用GUI,所以这对我来说也属于低概率事件,备用着吧。
- cmder是我最终选用的工具,它的cmder shell支持使用python pyaudio程序,和bash一样的快捷键使用习惯。也集成了git, ssh这些常用的功能,也能通过定义alias别名方便使用wsl bash命令, 也支持tabs。很好,就是它了,现在需要设置它让它更符合我平时使用linux的习惯。
设置cmder的home dir
D:\>wsl
root@DESKTOP-ENUSKP0:/mnt/d# grep -r 'home pat' /mnt/d/soft/cmder/vendor/init.bat -A 3
:: Set home path
if not defined HOME set "HOME=%USERPROFILE%"
%lib_console% debug_output init.bat "Env Var - HOME=%HOME%"
@cd /d "D:/"
定义/bak软链与ubuntu的路径使用习惯相同
root@DESKTOP-ENUSKP0:/mnt/d# ln -s /mnt/d /bak
root@DESKTOP-ENUSKP0:/mnt/d# ls /bak/soft/cmder/vendor/init.bat
/bak/soft/cmder/vendor/init.bat
定义alias别名在cmder shell更方便直接使用wsl bash命令
D:\>cat soft/cmder/config/user_aliases.cmd |tail -n 20
sshxxx=ssh ubuntu@xxx -b 192.168.8.101
ifconfig=wsl ifconfig
awk=wsl awk
head=wsl head
less=wsl less
ls=wsl ls
man=wsl man
sed=wsl sed
tail=wsl tail
route=wsl route
ping=wsl ping
nslookup=wsl nslookup
dig=wsl dig
tar=wsl tar
cat=wsl cat
tee=wsl tee
设置默认使用cmder shell
注: win+shift+s可以快速截屏
标题在General -> Confirm中去掉警告
设置tab相关的快捷键与chrome vimum
其他 - 让windows支持内录
thinkpad x1 yoga只有一个音频口,喇叭在放音的时候就单工了麦克风不能录音了,能让声音内部从喇叭路由到pyaudio程序处理了再内部路由到麦克风吗?答案是需要安装虚拟路由,同时得支持路由在虚拟设备和物理设备间路由。有款叫voicemeeter的软件就是做这件事的。路由设置如下图:
- 在1处选内装麦克风,同时将A去掉,A代表可以从麦克风处输入声音
- 2处不选 ,因为只有一个音频物理设备
- 3处是选虚拟设备的,A,B两处默认都选
最右侧输出到扬声器
需要将声音的输入和输出默认都走虚拟设备
注意:这样,声音就被内部路由到python pyaudio了, 如果外部也能从物理设备录音的话,必须一直开着voicemeeter, 所以按win+r键输入 shell:startup 进入 C:\Users\ThinkPad\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 目录, 将voicemeeter的链接加到这个目录开机就自动启动了. 不过, 我不是这样做的,voicemeeter菜单中有如下的两项开机自动启动并放入拖盘的设置,如下图。
20230209更新 - 小主机连电视后如何同时从HDMI与内置扬声器输出
maxtang NUC通过HDMI连电视后,电脑的声音将通过HDMI从电视出。此时,若在电脑上再装一个带麦的蓝牙耳机,那要求电脑的声音同时从内置的麦克风出到蓝牙耳机和输出到电视。那怎么办呢?仍得用到voicemeter.
下图是用到了纯麦麦克风,卖家说它只能用在鸿蒙电视上,其实它也能用在win11上。需要做以下几步:
- 将电脑的右下角的小喇叭的输出改成从voicemeter的virtual出
- 如下图,在voicemeter的最右边的’HARDWARE OUT’处改成同时使用HDMI与扬声器出。
- 如下图最左侧的HARDWARE INPUT 1处改成使用纯麦的麦克风. 没有第二个麦克风所以HARDWARE INPUT2可以不管, VIRTUAL INPUT用默认。
粘贴到vim全变成一行的问题
如从记事本复制多行内容,然后粘贴到vim却变成了多行,将下图中Ctrl+Shift+V的快捷键设置成Multi lines模式即可。
另一个开机自启的方法
上面介绍了一种开机自启的方法,但对于cmd命令的自启还要写脚本打开shell,再后台运行程序,再关shell。但我的windows shell不熟悉啊。有一种简单的将自己的应用放入服务的方法, 以开机自启frpc为例:
- 将nssm.exe下载放到和frpc同一级目录
- 运行:nssm install frpc 会弹出配置服务界面,照着配置就行了
- 到服务目录设置自动启动它。
安装clink增强cmder的像bash completion一样的命令提示
安装类似于proxychain的proxycap
安装winaera tweaker设置系统代替设置注册表
使用qnap nas
qnap nas设置了nfs server, wsl中由于没nfs内核模块,无法通过autofs设置nfs.
所以直接在浏览器上通过\就可以访问nas了, 或者安装qfinder pro
其他 - 键盘丢失按键的问题
感觉键盘总是丢失按键,似乎是在cmder时发生(not 100% sure), however, 搜到了一个相关的bug - https://github.com/cmderdev/cmder/issues/258
后来安装双系统后切换到ubuntu后不再丢失按键,所以不是键盘的问题,就是cmder的bug, 见:https://zhhuabj.blog.csdn.net/article/details/82466639
20220610更新 - 远程解决两例windows问题
昨天媳妇打电话说她同事的电脑键盘不能用但鼠标能用,我平时也很少很少用windows系统,只能远程试着帮她解决.
- 她说她的键盘是圆口,哦,那是PS2键盘,那么古老,我的第一反应就是会不会古董与新的win10存在不兼容.于是要她换个usb键盘试试
- 她说usb键盘也不行,换蓝牙键盘也不行
- 于是要她重启一下机器,她重启了好几次,说也是不行
- 于是昨天中午,我就带了一个ubuntu启用盘,想过去确认一下是win10的问题,还是电脑硬件的问题.结果到她办公室的时候,还什么也没开始做,那键盘自然就好了.我就告诉她那可能是PS2古董键盘的问题,让她同事换个USB键盘继续用.
- 今天,她又打电话说,USB键盘也又出同样问题了
- 于是,搜索微软官方,发现: https://answers.microsoft.com/zh-hans/windows/forum/all/win10%E7%B3%BB%E7%BB%9F%E6%AF%8F%E6%AC%A1%E5%BC%80/cfd83767-04c4-4e2d-b74b-66f80f21ead3
- 要她以管理员用户打开cmd运行下列命令后问题就解决了,期间,因为键盘没法用无法输入字符,要求她微信用鼠标拷贝,但粘贴之后没有键盘按回车,要求她使用电脑的屏幕键盘搞定.
reg add HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318} /v UpperFilters /t reg_multi_sz /d kbdclass /f
于是这个问题搞定.上个月,她也打电话问了另一个问题,说chrome无故闪退,我让要换个浏览器,她说她换edge了问题依旧,我说edge用的内核也是chrome内核,也许你应该换个firefox浏览器,结果问题就解决了.至于为什么chrome会闪退那就不得而知了,她的win10系统是更新到最新版的,chrome也是最新版的,但windows不比linux可以轻松获取chrome的core dump来分析一下.我对windows实在不熟不清楚如何获取core dump, 先要她用firefox作为workaround了.
编码问题
可在"region setting"设置中将默认编码从gb2312改成utf-8.
当然即使win10仍然使用gb2312,python程序也可以仍然使用utf-8编码:
- 添加:# coding=utf-8
- 该程序如果还要再打开其它可能有中文的文件的话也要处理utf-8: open(‘columns.txt’, mode=‘r’, encoding=‘utf-8’)
这样utf-8的python程序也能跑在gb2312的windows上了,但windows cmd想要支持utf-8的话,可运行:chcp 65001,或修改注册表,见:https://blog.csdn.net/ml863606/article/details/86007579
20250112 Update - miniDLNA
家里是两级路由器,想连在二级路由器(192.168.3.0/24)上的手机访问连在一级路由器(192.168.99.0/24)上的照片。所以想试一下miniDLNA,但找不到免费的dlna client (后来将minipc上的wlan0启用就可以了)。 好用的dlna client有:
- vlc for android既支持nfs又支持dlna, 但有时候不能全屏
- DmsExplorer, 能全屏,但只能一个个文件放,要多个文件连续播放得自己创建播放列表
- 其他的client基本上都有广告或收费
sudo rfkill unblock wifi
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
sudo dhclient wlan0
sudo rfkill list
sudo ip link set wlan0 up
lspci -k | grep -iA2 network
sudo iw dev wlan0 scan | grep SSID
cat << EOF |sudo tee /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="<SSID>"
psk="<PASSWORD>"
}
EOF
#上面的方法会过段时间IP消失,改成netplan模式
hua@minipc:~$ sudo cat /etc/netplan/01-network-manager-all.yaml |head
network:
version: 2
renderer: networkd
wifis:
wlan0:
dhcp4: true
access-points:
"quqiAP5G":
password: "xxx"
ethernets:
sudo apt install minidlna -y
cat << EOF |sudo tee -a /etc/minidlna.conf
#"A" for audio, "V" for audio, "P" for images
media_dir=PV,/bak/photo
friendly_name=minipcDLNA
network_interface=br-eth0,wlan0
inotify=yes
EOF
sudo systemctl restart minidlna
sudo systemctl enable minidlna
sudo minidlnad -R
#use 'vlc for android' as client, and status page is: http://192.168.99.179:8200/
下面的配置不work, 所以后来用wlan0来bypass的
1, 一级路由器添加静态路由:目标网络为二级路由器子网(192.168.3.0/24),网关为二级路由器WAN口(192.168.99.213)
2, 配置一级路由器的防火墙允许来自二级路由器子网(192.168.3.0/24)的流量访问 MiniDLNA 服务器(192.168.99.179)的端口(默认是 TCP 8200)
root@gw:~# grep -r '8200' /etc/config/firewall -B10
config rule
option enabled '1'
option target 'ACCEPT'
option src 'wan'
option dest 'lan'
option name 'Allow-MiniDLNA-From-Secondary-Subnet'
option family 'ipv4'
option proto 'tcp'
option src_ip '192.168.3.0/24'
option dest_ip '192.168.99.179'
option dest_port '8200'
root@gw:~# iptables-save |grep 8200
-A zone_wan_forward -s 192.168.3.0/24 -d 192.168.99.179/32 -p tcp -m tcp --dport 8200 -m comment --comment "!fw3: Allow-MiniDLNA-From-Secondary-Subnet" -j zone_lan_dest_ACCEPT
20250212 - 给弟家的盒子做照片备份
1, 盒上插上移动硬盘,会看到设置名 /dev/sda1
root@onecloud:~# fdisk -l |grep sd
Disk /dev/sda: 465.76 GiB, 500105740288 bytes, 976769024 sectors
/dev/sda1 2048 976769023 976766976 465.8G 7 HPFS/NTFS/exFAT
root@onecloud:~# blkid /dev/sda1
/dev/sda1: LABEL="PENDRIVE" BLOCK_SIZE="512" UUID="0EBE1831BE181435" TYPE="ntfs" PARTUUID="00029aa0-01"
加载硬盘
mkdir -p /bak
echo 'UUID=0EBE1831BE181435 /bak ntfs defaults 0 0' >> /etc/fstab
mount -a
ls /bak
2, 盒子上安装samba
apt update
apt install samba -y
cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
vim /etc/samba/smb.conf
[bak]
comment = bak
path = /bak
writable = yes
browseable = yes
guest ok = yes
添加用户(密码:password)
useradd -s /sbin/nologin nasadmin
smbpasswd -a nasadmin
重启服务:
systemctl enable smbd
systemctl restart smbd
(可选)在linux上测试:
sudo apt install smbclient -y
smbclient -L //192.168.98.132 -U nasadmin
smbclient -U nasadmin%password //192.168.98.132/bak -c "ls"
sudo mount -t cifs -o vers=2.0,username=nasadmin,password=password,uid=$(id -u),gid=$(id -g),forceuid,forcegid //192.168.98.132/bak /mnt/share
sudo mount -t cifs -o username=nasadmin,password=password,uid=$(id -u),gid=$(id -g),forceuid,forcegid //192.168.98.132/bak /mnt/share
(可选)在win11上测试(未测试):
直接在文件浏览器的地址栏输入: \\192.168.98.132\bak , 若需要用户名和密码的话是nasadmin/password
3, 盒子上安装dlna
apt install minidlna -y
cat << EOF |sudo tee -a /etc/minidlna.conf
#"A" for audio, "V" for audio, "P" for images
media_dir=PV,/bak/photo
friendly_name=bingDLNA
network_interface=eth0
inotify=yes
EOF
systemctl restart minidlna
systemctl enable minidlna
minidlnad -R
#use 'vlc for android' as client, and status page is: http://192.168.98.132:8200/
4, 在盒子上安装了one dns tool
systemctl restart ss_dns
使用步骤:
a, 统一将照片存储在samba上 (windows与linux连接samba的步骤见上面)
b, 通过rsync命令可以将samba上照片分发到其他电脑上,
注意1:--delete参数有可能删除原有的照片, 若不熟悉rsync命令慎用
注意2: windows上安装git也可有rsync命令
rsync -avztur --progress /bak/photo/ ~/photo
rsync -avztur --progress --delete /bak/photo/ ~/photo
rsync -avztur --progress --delete --exclude 'film' /bak/photo/ ~/photo
c, 若不想通过ssh网络来运行rsync上的话,实际上盒子上有两个usb口,可以在另一个usb口上也插入另一个移动硬盘(如是/dev/sda2), 将/dev/sda1上的文件备份到/dev/sda2上的命令如下:
mount /dev/sda1 /bak
mount /dev/sda2 /mnt/sda2
rsync -avztur --progress /bak/photo/ /mnt/sda2/photo
20250215 - 备份我的系统
#backup my working machine
rsync -av --progress \
--include='.ssh/***' \
--include='.bashrc' \
--include='.sesame/***' \
--include='.gitconfig*' \
--include='.gnupg/***' \
--include='.ss*/**' \
--include='.vim*/**' \
--include='mygpgkey*' \
--include='*novarc' \
--include='*.txt' \
--include='*.sh' \
--exclude='*' \
/home/hua/ /nas/bak/home_backup/
sudo rsync -av --progress \
--include='rc.local' \
--include='dnsmasq.conf' \
--include='dnsmasq*/***' \
--include='fstab' \
--include='auto.direct' \
--include='auto.master' \
--include='bash*/***' \
--include='netplan/***' \
--include='resolv.conf' \
--include='systemd/' \
--include='systemd/resolved.conf' \
--include='systemd/system/' \
--include='systemd/system/ss*' \
--exclude='*' /etc/ /nas/bak/etc_backup/
crontab -l > /nas/bak/crontab_backup.txt
dpkg --get-selections > /nas/bak/package_list.txt
#backup my router
scp root@gw:/root/* /nas/bak/gw/
mkdir -p /nas/bak/gw/etc && scp -r root@gw:/etc/config /nas/bak/gw/etc/ && scp -r root@gw:/etc/init.d /nas/bak/gw/etc && scp -r root@gw:/etc/firewall.user /nas/bak/gw/etc/
ssh root@gw -- crontab -l > /nas/bak/gw/gw_crontab_backup.txt
#backup my box
scp root@proxy:/root/* /nas/bak/proxy/
ssh root@proxy -- crontab -l > /nas/bak/proxy/proxy_crontab_backup.txt
rsync -av --progress -e "ssh" --include='.ssh/***' --include='.bashrc' --include='.sesame/***' --exclude='*' root@proxy:/root/ /nas/bak/proxy/
mkdir -p /nas/bak/proxy/etc && rsync -av --progress -e "ssh" \
--include='rc.local' \
--include='dnsmasq.conf' \
--include='dnsmasq*/***' \
--include='fstab' \
--include='auto.direct' \
--include='auto.master' \
--include='bash*/***' \
--include='netplan/***' \
--include='resolv.conf' \
--include='systemd/' \
--include='systemd/resolved.conf' \
--include='systemd/system/' \
--include='systemd/system/ss*' \
--exclude='*' root@proxy:/etc/ /nas/bak/proxy/etc/
#mobiledisk is on minipc
sudo mount /dev/sdb1 /bak_mobiledisk/
rsync -avztur --progress --delete --exclude '.Trash-1000' /nas/ /bak_mobiledisk
20250319 - 大唐nuc从win11改安装飞牛nas系统 - fnOS
先将大唐nuc上的win11备份, 将win11的C, D, EFI, bootable等分区通过win11自带的备份工具(控制面板 -> 系统和安全 -> 备份和还原Windows 7)备份到了移动硬盘的第二个分区上(里名为WindowsImageBackup),往移动硬盘备份时报此驱动器已毁坏请用磁盘检查(先在移动硬盘的该盘上点右键,然后在工具栏里修复该驱动器即可)。今后恢复时从启动盘启动(傲梅备份里的工具菜单里就有制作启动盘的选项,以前的大白菜也行),然后从高级选项 -> 系统映像恢复 即可 (https://www.abackup.com/easybackup-tutorials/migrate-the-entire-c-drive-to-another-hard-drive-6540.html)
docker run -d \
--name feishu-p2p \
--cap-add=ALL \
--privileged=true \
-v $(pwd)/conf:/data/conf/ \
-v $(pwd)/logs:/data/logs/ \
--device=/dev/net/tun \
--restart=always \
--network=host \
registry.cn-qingdao.aliyuncs.com/feishuwg/p2p:v2.2
#visit <IP>:9091 to up the device
设置fnos影视使用外接盘的讲究:
- 第一要注意的是要用fnos网页端,而不是手机端,它会比手机端的功能更全,如对影视来源目录的权限控制等
- 设置影视允许的文件夹 (网页端 -> 应用设置 -> 影视 -> 允许文件夹 ->/vol00/TOSHIBA_MQ01ABD100M/nas_mirror/photo -> read only)
- 设置外接盘所有用户可见 (文件管理->设置->外部设备权限 所有账号可见)
- 打开影视后,在影视自己的设置中继续设置“新增媒体库" (只有设置了上面一步这步才能看见外接盘)
- 普通用户若无法看到管理员共享的影视内容,需要在‘网页端 -> 影视 -> 设置 -> 用户’设置普通用户有使用影视库的权限
飞牛fnos与威联通nas的联动方式如下:
1, 通过autofs将威联通nas挂载到fnos上。注意:似乎威联通的nas有个bug似乎匿名登录时也具有可写权限试过很多次未成功。
root@fnos:~# cat /etc/auto.direct
/nas -fstype=nfs,nfsvers=4,rw,username=admin,password=xxx,rsize=32768,wsize=32768 nas.lan:/Public
2, 在影视中只读使用/vol00/TOSHIBA_MQ01ABD100M/nas_mirror/photo(在影视允许文件夹处可设置只读模式), 及内置盘上创建photo_hua与photo_ivy两个目录。注意:由于发现fnos远程挂载时时断时续, 所以将数据从nas上拉到外接盘上再用,也算外接盘上额外多个备份吧。
3, fnos上有两个盘(内置盘与外接移动硬盘), 内置盘上创建photo_hua与photo_ivy两个目录(定期往nas.lan:/Public/photo同步后删除这两目录内的内容),设置相互共享,用于日常与手机相册备份。fnos上的影视设置3个目录(/vol00/TOSHIBA_MQ01ABD100M/nas_mirror/photo, photo_hua, photo_ivy).
4, 将photo_hua与photo_ivy两个目录的照片往威联通的nas可在fnos的ssh中通过该命令进行: mv /vol1/1000/photo_hua/DCIM/* /nas/photo/
5, 将威联通的nas挂载到其他机器的/nas再统一照片查重 (因为使用fnos的相片同时时,手机上删除一张相片之后,fnos相册里不会自动删除),今后看看fnos上是否支持照片AI自动去重?
目前发现的fnos的一些问题:
fnos相册备份一次之后,若换了个盘不会重新备份,需卸载相册和数据再重装,再重新备份相册. fnso影视也存在同一问题换硬盘后数据不更新。
手机上删除一张相片之后,fnos相册里不会自动删除
fnos影视无法设置内置盘以外的目录(如nas目录,如外置盘)
fnos文件备份不支持nas协议,但支持samba,但我的威联通nas上启动samba有些困难
fnos远程挂载时时断时续
fnos目前不支持照片去重. 但我的三星s24手机支持本地去重,在相册中打开右下角的三个点中点建议. 有通过 MT Photos来去重的方法 - https://mtmt.tech/docs/example/fnnas/
使用samba的一些测试命令如下:
sudo apt install cifs-utils -y
smbclient -L //nas -U admin%nanting413
sudo mount -t cifs -o vers=2.0,username=share,password=xxx //192.168.99.238/Multimedia /mnt/nas
sudo mount -t cifs -o vers=2.0,username=admin,password=xxx,uid=$(id -u),gid=$(id -g),forceuid,forcegid //192.168.99.238/Public /mnt/nas
sudo mount -t cifs -o vers=3.0,username=admin,password=xxx,uid=$(id -u),gid=$(id -g),forceuid,forcegid //192.168.99.238/Public /mnt/win
#fnos is fat format so adding '--no-owner --no-group' to bypass the error 'rsync chown Operation not permitted'
#and adding '--temp-dir=/root/data' to bypass 'rsync mkstemp failed' because rsync may has no permission to access /tmp
rsync -avztur --progress --delete --temp-dir=/root/data --no-owner --no-group --exclude='.Thumbs.db' --exclude='.Trash-1000' /nas/ /vol00/TOSHIBA_MQ01ABD100M/nas_mirror
用了一段时间的飞牛后,感觉对我来说一个nas最重要的是下面这些点:
- 照片自动去重功能,如联想的便宜的t2s都支持
- 远程内网映射功能,华为的nas就不怎么支持
- 备份照片时,如果手机上删除,nas上也应该同步删除,fnos就不支持 (如何做到双向同步呢?)
- 除了备份手机照片,还能备份通信录吗?
- 剩下的是类似fnos的影视功能
- 支持ssh吗?绿联是支持的,联想不支持
- docker功能,可以扩展应用
- 虚机功能,要玩虚机,一般cpu都是不行的,哪怕是n100
- AI功能,更奢侈,cpu性能不够用
- 散热问题
syncthing使用 - 使用Syncthing将移动设备的文件单向备份到PC - https://zhouym.tech/2021/Syncthing/
1, fnos与s24 cellphone上都安装synthing
2, 相互添加远程设备,例如在fnos上添加远程设备(http://192.168.99.206:8384/),设备ID从手机上找"设备ID"即可。反之亦然,手机上也添加fnos的远程设备(叫fnos)
3, 手机上添加一个相册的共享文件夹 (/storage/emulated/0/DCIM), 注意:此时在文件夹里必须将fnos前的勾打上才会同步的。fnos端无须添加
4, 同步后,fnos上会自动出现一个文件夹(/vol1/@appdata/syncthing/nma2s-uo7jh)
5, fnos端在文件夹的高级处可选文件夹的类型为:仅接收(单向同步)。手机端无法设置
6, 上面设置出来的默认的是手机端删除文件时fnos端也会删除,若想不删除需要在fnos端右上角的'操作->高级->文件夹->Ignore Delete'前打勾
7, 缺点就是synthing(/vol1/@appdata/syncthing/nma2s-uo7jh)与fnos自带相册用了不用的目录(/vol1/photo_hua), 这样也行,备份时备份synthing目录即可,photo_hua仅用于做fnos影视.
8, 或者针对上一步将synthing直接弄在要最终备份的威联通nas上省了今后专门备份的步骤, 但QNAP NAS上无syncthing, 但有类似的resilio sync, 它不仅可以实现同样的功能,还能做分布式网盘使用。
使用resilio sync的步骤如下:
1, 在手机的resilio sync上输入设备名s24, 然后创建一个文件夹指向相机目录(/storage/emulated/0/DCIM/Camera, 默认是它但也要重新选择一下让它的名字是Camera),复制链接,然后在共享设置里改为只读模式和仅限wifi
2, 在nas端的resilio sync上输入设备名fnos, 然后点加号->输入密钥或链接,然后保存到:/share/Public/photo/resilioSync/hua_s24
3, 此时显示等待批准,那继续在手机端的文件夹右边点进去最下面有一个“首选项->预定义主机"填上nas的IP和端口(端口在nas端的resilio sync的”设置->高级"处能查看18645)
4, 然后手机端处会弹出一个通知,点批准即可开始同步
5, 但网上说resilio sync在国内只能在局域网用(国外公司开发,服务器IPv4被封了, 另外它还有一个预定义的局载网IP, 想外网用的话可能需要使用tailscale, 不过我也没有外面同步手机照片的需求), 国内的话推荐微力同步(中国企业开发闭源,但我的qnap不支持)和syncthing(开源, 我的qnap上也不支持)
6, 但是resilio sync也不支持手机上删除后nas端同步删除的功能,可能是在收费版本里吧,不清楚,放弃。看样子只有syncthing支持这一功能
rsyncthing在媳妇的鸿蒙系统上总是动不动就显示离线用不了,所以继续研究微力同步
微力同步的使用和resilio sync一模一样(因为它就是在resilio上套的壳):
1, 先手机上创建一个相册的备份目录(设置为仅发送,和只读密钥), 然后将密钥拷贝
2, 在fnos根据密钥新建一个同步即可(它比resilio sync多了个“忽略删除”选项,默认就是可以手机删除照片后nas端同步删除的)。此时会遇到一个bug, 微力同步 无法加载您指定的路径 (mkdir -p /vol1/verysync/hua && chown -R verysync /vol1/verysync , 然后输入/vol1后直接按回车)
鉴于这几个限制:1)fnos相册与resilio sync均不支持手机删照片后nas同步(绿联和联想nas也不支持), 目前测试只有rsynthing与微力同步支持, 但鸿蒙手机上rsynthing问题多 2)但my qnap不支持rsynthing与微力同步, 所以将qnap与fnos的联通流程改为如下:
1, 手机上还是通过微力同步与fnos同步到/vol1/verysync/hua目录,手机删除照片,该目录同步删除,今后备份数据时直接将该目录备份到my qnap
2, 在fnos影视中设置两个目录(/vol1/verysync与/vol00/TOSHIBA_MQ01ABD100M/nas_mirror/photo),(一是在应用中心->已安装应用->影视->允许文件夹中设置,二是在影视->设置->媒体库管理->媒体库设置中设置)
3, 这样fnos相册同不同步就无所谓了,那就再同步一次吧权当个备份(手机删除了它不删的).
4, 定期将/vol1/verysync下的照片目录往qnap上在fnos上通过rsync命令同步;定期将qnap上的照片往/vol00/TOSHIBA_MQ01ABD100M/nas_mirror/photo同步
20250326 - fnos上通过alist使用夸克, 百度
1, fnos上安装alist网络,登录(admin/alist)后点“管理”后能修改密码.
2, 点“存储->添加->驱动->选夸克", 获取cookie的方法(登录pan.quark.cn后按ctrl+shift+I进入开发者模式,network->Fetch/XHR随便点一个链接出来headers,再找cookie将它整个复制填进去就行), 挂载到/quark_disk(今后网盘多了用于区分名字)
3, 然后通过飞牛"文件管理->远程挂载->挂载远程文件夹->WebDev"然后填入alist的IP, 端口5244, 用户名和密码, 挂载路径必须填/dav即可 (挂载webdav的挂载点/dav之后,像/dav/quark_disk与/dav_baidu_disk就都在里面了)
ls /vol02/1000-1-eda8e402/
root@fnos:~# mount |grep dav
1000-1-eda8e402{Q1VxD}:dav on /vol02/1000-1-eda8e402 type fuse.rclone (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
若用ls /vol02/1000-1-eda8e402/显示中文乱码,是需要将终端的编码从en_US.UTF-8切换成zh_CN.UTF-8 (dpkg-reconfigure locales && export LANG=zh_CN.UTF-8)
下载方法如下:
alias rscp='rsync -v -P -e ssh'
alias rcp='rsync -avz --progress'
rsync -avh --progress /vol02/1000-1-eda8e402/quark_disk/来自:分享/Win11_23H2_Chinese_Simplified_x64.iso /vol1/1000/
alist挂载百度网盘, 通过这个网页获取令牌( https://alist.nn.ci/zh/guide/drivers/baidu.html#%E5%88%B7%E6%96%B0%E4%BB%A4%E7%89%8C ), 照上面的第2步做完就行了(挂载到/baidu_disk, 使用302重定向),接着可以使用“ls /vol02/1000-1-eda8e402/baidu_disk/”。上面第3步不是必须的另外上面挂载夸克时已经在fnos里远程挂载了
注意几点:
- 在上面的第3步这块,可以填本地代理,也可以填302重定向 (也就是绕过alist所在的机器直接将文件下载到正在浏览alist网页的设备),还有的的网盘可能使用302重定向不限速。
- 另外, 据说天翼云盘通过alist挂载不限速 (它挂载更简单,不需要通过cookie, 直接用用户名和密码, ls /vol02/1000-1-eda8e402/189_disk/)
- fnos里支持对百度网盘与阿里云盘的远程挂载,不需要通过alist+webdav的方式远程挂载
20250327 - use openwrt on fnos
ip link set enp1s0-ovs promisc on
docker network create -d macvlan --subnet=192.168.99.0/24 --gateway=192.168.99.1 -o parent=enp1s0-ovs openwrt
docker pull sulinggg/openwrt:x86_64
docker run --restart always --name openwrt -d --network openwrt --privileged sulinggg/openwrt:x86_64 /sbin/init
docker exec -ti openwrt bash
vim /etc/config/network
:%s/192.168.123/192.168.99/g
/etc/init.d/network restart
#access http://192.168.99.100
20250327 - use win11 on fnos
在fnos上安装win11虚机时需Shift + F10 打开命令行界面
REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1
REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1
密钥的处理
slmgr /ipk <SN>
slmgr /skms kms.03k.org
slmgr /ato
通过remmina时无法使用远程用户的holo登录,使用本地用户:
net user hua password /add
net localgroup Administrator hua /ADD
net user Administrator /active:no
20250327 - use samba on fnos
用自带的samba总是不work,所以我最终改成了下列配置:
smbpasswd root
root@fnos:~# pdbedit -L
root:0:root
root@fnos:~# cat /etc/samba/smb.conf
[global]
netbios name = fnos
#interfaces = lo br-lan
server string = fnos
unix charset = UTF-8
workgroup = WORKGROUP
bind interfaces only = yes
deadtime = 30
enable core files = no
local master = yes
map to guest = Bad User
max protocol = SMB3
min receivefile size = 16384
passdb backend = smbpasswd
# run 'smbpasswd root' to set pass for 'root', we also need to comment 'invalid users=root'
#invalid users = root
security = user
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY IPTOS_LOWDELAY
use sendfile = yes
[share]
path = /vol1/1000/share
read only = no
guest ok = yes
create mask = 0666
directory mask = 0777
browseable = yes
public = yes
admin users = root
valid users = root
注意:上面未使用‘valid users = root’时,在win11的文件夹的地址栏输入\192.168.99.206直接就进去了,但在文件夹里建立固定映射时却总提示输入密码,怎么输也输不对。后来加了valid users = root这句之后,发现建立固定映射时一定要输入\192.168.99.206\share, 而不能是\192.168.99.206否则会输入密码怎么也说不对。