本文为JC studio视频《NAS组装从入门到持续折腾》的配套文档。
不自动设置控制台分辨率
在Ubuntu
的引导菜单条目下按 E 键,进入编辑模式;在linux /casper/vmlinuz
后加入nomodeset
,按 F10 键启动系统。
安装Ubuntu Server
在语言选择页面,选择English
,回车;
在Keyboard Configuration
(键盘配置)页面,Layout
和Variant
均保持为English (US)
,选择Done
(完成),按回车;
在Network Connections
(网络连接)页面,直接选择Done
;
在Configure Proxy
(代理配置)页面,直接选择Done
;
在Configure Ubuntu archive mirror
(软件源镜像配置)页面,将Mirror Address
(镜像源地址)改为http://mirrors.ustc.edu.cn/ubuntu ,选择Done
;
如果提示Installer update available
(安装程序有更新),选择Continue without updating
(继续而不更新);
在Guided storage configuration
(硬盘分区)页面,选择Custom storage layout
(自定义存储布局),方向键移动,空格键选中;然后选中Done
;进入Storage configuration
(存储配置)页面,在Available Devices
列表下用方向键选中要安装系统的硬盘,回车键打开菜单,先创建ESP分区:选择Use As Boot Device
(作为启动盘),会自动创建一个512M的ESP分区;再创建其他分区:Add GPT Partition
,在对话框的Size
(大小)框内输入大小,例如512M或60G;Format
(格式)选择ext4,Mount
(挂载点)选择一个挂载点,然后选择Create
创建分区。推荐创建三个分区:512M,ext4,/boot
(启动分区)、>60G,ext4,/
(根分区,也就是系统分区)、10G,swap
、剩下的空间给一个ext4的/home
分区;
创建软件RAID,选择Create software RAID (md)
,name
(设备名)保持md0
不动,再选择RAID Level
(RAID等级),视频中因数据完整性起见我选择1 (mirrored)
,也就是将数据一式两份地存储,其他的RAID等级的作用和特点可以自行上网查找,然后在Devices
(设备)部分勾选要建立阵列的两块机械硬盘,再选择Create
(创建)。这时Available Devices
里面会出现md0
,然后仿照上面的步骤创建/srv
分区;
在Profile setup
(资料设置)页面,输入Your name
(姓名)、Your server’ s name
(主机名)、Pick a username
(登录用的用户名),然后输入两次密码,选择Done
;
在SSH Setup
(SSH设置)页面,勾选Install OpenSSH server
,选择Done;
在Featured Server Snaps
页面,暂不勾选任何项目,选择Done
,开始安装进程,安装结束后会提示拔掉U盘,按回车重启进入新系统。
为NAS分配固定IP
以OpenWrt为例,选择网络 - DHCP/DNS
,在静态地址分配中找到你的NAS,输入要设置的IPv4地址,租期(如有)推荐infinite
,然后保存设置。
用SSH连接到NAS
$ ssh 你的用户名@NAS的IP地址
例如:
$ ssh [email protected]
然后输入登陆密码,第一次登录会出现一长串的提示后面跟着一句Are you sure you want to continue connecting (yes/no)?
,输入"yes"并回车即可;需要注意的是这里不会显示已经输入的密码;完成后按回车。
安装Cockpit(控制面板)
$ sudo apt-get install cockpit
首先会提示输入密码,出现Do you want to continue? [Y/n]
时,直接按回车。安装好之后浏览器打开你的IP地址:9090
即可进入控制台。
安装其他软件时可以参照以上步骤:
$ sudo apt-get install 软件1 软件2 软件3 ...
卸载软件:
$ sudo apt-get remove 软件1 软件2 软件3 ...
刷新软件源:
$ sudo apt-get update
更新系统中的所有软件:
$ sudo apt-get upgrade
创建SMB共享
安装samba:
$ sudo apt-get install samba
创建SMB共享用户和密码:
$ sudo smbpasswd -a 你的SMB用户名
这里你的SMB用户名可以和你的登录用户名重名,也可以不同,然后输入两遍密码;
配置samba:
$ sudo nano /etc/samba/smb.conf
当然你也可以用vi
等其他编辑器;
滚动到文件最后,输入以下内容:
[共享文件夹名称]
comment = 文件夹注释
path = 文件存储位置
public = yes
writable = yes
directory mask = 0777
create mask = 0777
valid users = 你的SMB用户名,root
write list = 你的SMB用户名,root
browseable = yes
available = yes
这样会创建一个名称为“共享文件夹名称”,注释为“文件夹注释”,路径位于“文件存储位置”的,能够由用户“你的SMB用户名”登录,并能由此用户在该共享文件夹下进行读写。有关详细的权限设置等内容可以自行查找;
我的配置是:
[Storage]
comment = JC NAS Server
path = /srv/share
public = yes
writable = yes
directory mask = 0777
create mask = 0777
valid users = wwq,root
write list = wwq,root
browseable = yes
available = yes
这代表在我的NAS中创建一个叫Storage
的共享文件夹,注释是JC NAS Server
,打开它所访问到的是/srv/share
里面的文件,并且能够用wwq
用户进行读写操作;
对于nano
,按 Ctrl+O 保存, Ctrl+X 退出,编辑其他文件可以:
$ sudo nano 文件路径
编辑大多数配置文件要增加sudo
,否则无法保存;如果文件不存在,编辑器会为你创建它;
创建存储位置:
$ sudo mkdir 上面设置的文件存储位置
例如:
$ sudo mkdir /srv/share
设置权限使其可读写:
$ sudo chmod 777 上面设置的文件存储位置
例如:
$ sudo chmod 777 /srv/share
启用SMB服务:
$ sudo systemctl enable smbd
我们了解一下systemctl
的使用,启用服务并设置为开机自启动:
$ sudo systemctl enable 服务名
启动服务但不设置开机自启:
$ sudo systemctl start 服务名
停止服务:
$ sudo systemctl stop 服务名
取消服务的开机自启:
$ sudo systemctl disable 服务名
重启服务(在你修改了配置文件之后会用到):
$ sudo systemctl restart 服务名
查看状态,显示绿灯为正常,红灯为失败:
$ sudo systemctl status 服务名
然后在Windows资源管理器的地址栏输入\\NAS的IP地址
,例如\\192.168.0.2
,就能看到共享文件夹的列表,然后双击共享文件夹,输入用户名和密码就可以访问文件了。
安装网盘服务端webd
先从webd的官网http://webd.cf/latest 获取安装包,这里需要选择webd-linux-x86_64.tar.gz
,因为我们用的是常规Linux系统和x64架构;
可以用浏览器下载安装包再通过SMB上传到NAS进行安装,也可以用wget
直接下载。这里介绍用wget直接下载安装包:
$ pkg=webd-linux-x86_64.tar.gz
$ cd /tmp
$ wget http://webd.cf/latest/${pkg}
$ tar -xzvf ${pkg}
$ sudo cp -fv webd/webd /usr/bin/
$ sudo cp -fv webd/webd.conf /etc/
$ sudo rm -rf /tmp/webd /tmp/${pkg}
创建回收站文件夹,这里把/srv/share
作为网盘根目录:
$ mkdir -p /srv/share/.Trash
编辑配置文件:
$ sudo nano /etc/webd.conf
配置用户名和密码,找到Webd.User
一项:
Webd.User rlum 用户名 密码
其中rlum
是权限设置:
r - 访问文件
l - 获取文件列表
u - 上传文件
m - 删除和移动文件
再配置存储路径:
Webd.Root 存储路径
这里我设置成:
Webd.Root /srv/share
通过rc.local
让Webd
开机自启动:
先创建链接,启用rc.local
功能:
$ sudo ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
再编辑rc.local
文件
$ sudo nano /etc/rc.local
输入以下内容:
除第一行#!/bin/bash
之外(它标志着这是一个脚本文件),这里#开头的内容是注释,在程序实际执行中不起作用。
#!/bin/bash
# Start webd netdisk server.
/usr/bin/webd &>/dev/null &
保存,重启系统:
$ sudo reboot
重启后webd
会自动启动,浏览器打开IP地址:9212
就能进入网盘页面。点击页面底部的Login,输入用户名和密码以登录到网盘。
配置硬盘自动休眠
设置自动休眠有助于延长寿命、降低功耗和噪音(特别是夜间)。
编辑rc.local
$ sudo nano /etc/rc.local
在末尾追加以下内容:
# HDD power saving
hdparm -S 休眠时间 设备名
休眠时间的常用取值:
60 = 5min
120 = 10min
180 = 15min
241 = 30min
242 = 1h
243 = 1.5h
244 = 2h
例如我有两块机械硬盘,分别是sdb
和sdc
,无操作30分钟后休眠:
# HDD power saving
hdparm -S 241 /dev/{sdb,sdc}
这里/dev/{sdb,sdc}
是指分别操作/dev/sdb
和/dev/sdc
;
重启生效。
$ EOF.