重装OMV4时踩到的坑

节前手贱,在装有debian上想用conda安装的zsh代替系统的bash, chsh后又做了一系列现已经想不起具体过程的神操作,无法通过远程登陆上我的nas。
本可尝试登陆本地桌面解决问题,但想起当初装系统时留下了一系列的问题,选择了重装。
然而,虽然不是第一次装debian和omv4,但是仍然踩了几个坑,记下以备忘。

安装时不要选网络源

手头的debian9的u盘一直放在nas边上,安装时也就没去升级debian10+omv4的组合。但是安装时,试过国内的cn2源,华为源, 清华源,全在安装到1143个包左右开始卡机,进度极慢,扔在那数小时之后还只是安装了几个包。
所以在安装时,不能选择net mirror, 直接本地镜像先安装好。在安装后再更换成清华等国内源
先安装包

apt install apt-transport-https ca-certificates

修改成清华源

vim /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security stretch/updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security stretch/updates main contrib non-free

exfat

apt-get install exfat-fuse exfat-utils

不要把miniconda3的放在PATH的优先位置

个人喜欢用miniconda3装最新版vim,但是发现如果把miniconda3放到PATH里的优先位置,会对系统运行造成一定的影响。
由于不像服务器要装大量工具,最终用自己编译vim的方式。注意+python+python3只能选一个,当然选python3了

./configure --with-features=huge \
  --enable-multibyte \
  --enable-luainterp=yes \
  --enable-perlinterp=yes \
  --enable-python3interp=yes \
  --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu \
  --prefix=/usr/local && \
make && make install

最终没有在htpc上装miniconda3

报错,TypeError: 'NoneType' object is not callable

论坛上找到是由于python3.5的bug导致的错误

cd /usr/lib/python3.5
vim weakref.py 
第109行 def remove(wr, selfref=ref(self)) -> def remove(wr, selfref=ref(self), _atomic_removal=_remove_dead_weakref):

第117行_remove_dead_weakref(d, wr.key) -> _atomic_removal(d, wr.key)

一个自动挂载硬盘的脚本

我的nas上顶盖内测面有两个2.5硬盘位,装了一个60g的ssd用于安装系统,另一个1t的硬盘mount到mnt,这两个基本不会动的硬盘就占据了j1800主板上仅有的两个sata口。另外插了一个4口sata扩展卡,用于前置面板处的4个3.5硬盘位。
用下面的python脚本自动挂载3.5硬盘, 目标/srv/disks

#!/usr/bin/env python3
import os
import re
for l in os.popen("ls /dev/disk/by-path"):
    line = l.strip()
    if line.endswith('part1') and '02' in line:
        num = line[-7]
        source_dir   = os.path.join('/dev/disk/by-path', line)
        mount_target = "/srv/disks/disk" + num
        if not os.path.isdir(mount_target):
            os.makedirs(mount_target)
        if os.path.ismount(mount_target):
            os.system('umount ' + mount_target)
        cmd = 'mount ' + source_dir + ' ' + mount_target
        print(cmd)
        os.system(cmd)

for l in os.popen('ls /srv/disks'):
    line = l.strip()
    target = os.path.join('/srv/disks', line)
    if os.path.ismount(target):
        pass
    else:
        try:
            os.rmdir(target)
        except Exception:
            pass

基础服务用omv4内置,权限问题其实很简单

一开始试图用docker去安装各种服务,但是权限问题在引入docker后变得非常复杂。仔细研究了下omv4的内置服务后,发现其实只需要建立一个系统账号就可以应付各种问题

  1. 建立一个用户,我是用share.
  2. 在不同的硬盘路径下分配读写权限, 点左边栏的Access Rights Managerment->Shared Folders
    • 比如前置3.5硬盘位上的disk1和disk2,想整个目录都可以让share读写,那分配硬盘后,直接指定/目录可读写
    • /mnt(原来是/dev/sdb1)下仅transmissiontimemachine等目录可让share读写,那就要明确指定目录
    • 指定方法为点上面的ACLpriveleges

samba和timemachine

  • samba直接添加前面设置好权限的目录
  • timemachine要先安装nettalk插件
    在左边栏里发现Apple Filing后,选中目录,启动 time machine

你可能感兴趣的:(重装OMV4时踩到的坑)