feat 添加nas安装教程
After Width: | Height: | Size: 304 KiB |
After Width: | Height: | Size: 603 KiB |
After Width: | Height: | Size: 209 KiB |
After Width: | Height: | Size: 203 KiB |
After Width: | Height: | Size: 197 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 132 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 396 KiB |
After Width: | Height: | Size: 774 KiB |
After Width: | Height: | Size: 258 KiB |
After Width: | Height: | Size: 465 KiB |
After Width: | Height: | Size: 287 KiB |
After Width: | Height: | Size: 385 KiB |
|
@ -0,0 +1,502 @@
|
|||
# Linux系统部署nas服务
|
||||
|
||||
最近因为频繁停电,用了半年的黑裙变成只读了,但是扫描之后,硬盘并没有问题。本人对群晖也不熟悉,网上搜了一圈也没处理好,一气之下备份好数据,格式化之后装了个truenas。可是好景不长,truenas又因为我配置太差,开机10分钟就OOM了,忍无可忍,要自由还是原生Linux,直接装了rockylinux9.4,所有服务全部手动配置,现在已经稳定工作3天。
|
||||
|
||||
## 配置:
|
||||
CPU: AMD R5 5600G
|
||||
|
||||
主板:华硕TUFB550 WIFI 2
|
||||
|
||||
内存:光威16GB x2
|
||||
|
||||
硬盘:西数紫盘6TBx4 + 西数紫盘4TBx4
|
||||
|
||||
目前已安装并运行的服务:nfs, filebrowser,qBittorrent,openWRT(kvm),jellyfin
|
||||
|
||||
## 安装教程
|
||||
|
||||
### 安装Rockylinux9((虚拟机截图。原服务器配置过程未截图)
|
||||
|
||||
镜像下载地址:https://mirrors.ustc.edu.cn/rocky/9/isos/x86_64/Rocky-9-latest-x86_64-minimal.iso
|
||||
也可以下载完整的dvd,都一样,如果是本地安装写入U盘后需要把iso也考进U盘,不然用网络装。现在网络这么发达了,我基本上都是用网络装。
|
||||
|
||||
#### 先来一张hype-v虚拟机(第二代)截图,为什么停在这个界面呢,因为要展示一下,需要关闭Security Boot才好安装
|
||||
|
||||
![](1.png)
|
||||
|
||||
#### 进入grub boot界面。选择第一项进入安装界面,也可以第二项,会检查安装媒体,我这里就不检查了。
|
||||
|
||||
![](2.png)
|
||||
|
||||
注意:如果不是虚拟机,使用U盘启动物理机的话,要按‘e'修改第一项。把“LABEL=ROCKY-9-4-x86_64-dvd 改掉。如下图。不同机器和不同U盘写入工具有所区别,也有可能是/dev/sda4, 根据当前已经安装硬盘数,也可能是 /dev/sdi1或/dev/sdi4
|
||||
![](3.png)
|
||||
#### 进入安装语言选择
|
||||
![](4.png)
|
||||
不要问,选English。纯Linux选个中文我看着就难受。Continue 进入安装配置
|
||||
![](5.png)
|
||||
#### 配置安装源,从网络安装 这里使用中国科技大学的源 https://mirrors.ustc.edu.cn/rocky/9/BaseOS/x86_64/os/ 配好点Done
|
||||
![](6.png)
|
||||
#### 选择安装内容,物理机建议装个界面,因为all in one,没事还能拿来写写代码,当然安装界面会耗电多一些。如果不需要界面,建议minimal 。选完点Done
|
||||
![](7.png)
|
||||
#### 配置磁盘,这里我custom。物理机大磁盘强烈建议custom。点done进入自定义配置界面
|
||||
![](8.png)
|
||||
我先偷懒点个自动分区
|
||||
![](9.png)
|
||||
如果你不知道还有多少可用空间,在分区大小哪里写个超大值,点Update 就会用光所有剩余空间。改完点Done。如果没有swap或者点一次没效果,可能要连点两次Done
|
||||
![](10.png)
|
||||
点Accept Changes
|
||||
#### 关闭KDump
|
||||
![](12.png)
|
||||
#### 创建用户
|
||||
![](13.png)
|
||||
#### 配置机器名和网络
|
||||
![](14.png)
|
||||
#### 等待安装完成
|
||||
一切配置完成,就可以点Begin Installation了
|
||||
![](11.png)
|
||||
等待安装完成,拔掉U盘(虚拟机弹出ISO)按Reboot
|
||||
## 系统配置
|
||||
输入账号密码,进入系统。打开terminal
|
||||
|
||||
使用 sudo visudo 命令修改sudo无需密码。:set nu可以显示行号,:107可以直接定位到这一行。i进入编辑模式。注释107行,取消注释110行。CTRL+C退出编辑模式。:wq 退出并保存。
|
||||
![](15.png)
|
||||
|
||||
### 使用国内源(这里用中科大的)
|
||||
|
||||
```bash
|
||||
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/rocky|g' -i.bak /etc/yum.repos.d/rocky-extras.repo /etc/yum.repos.d/rocky.repo
|
||||
```
|
||||
|
||||
系统安装配置完成。接下来操作都是命令行操作,不再附截图。可以使用Windows terminal远程操作,也可以在本机的terminal上操作。
|
||||
|
||||
### 更新系统
|
||||
|
||||
```bash
|
||||
sudo dnf makecache && sudo dnf update
|
||||
```
|
||||
|
||||
### 关闭防火墙。防火墙配置比较复杂,这里不做介绍
|
||||
|
||||
```bash
|
||||
sudo systemctl disable --now firewalld
|
||||
```
|
||||
|
||||
### 修改selinux
|
||||
|
||||
```bash
|
||||
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
|
||||
|
||||
sudo setenforce 0
|
||||
```
|
||||
|
||||
### 查看ip,方便后面ssh
|
||||
|
||||
```bash
|
||||
ip addr
|
||||
```
|
||||
### 安装常用软件
|
||||
```bash
|
||||
sudo dnf install vim unzip tar ungzip bzip2
|
||||
```
|
||||
### 磁盘分区与格式化
|
||||
|
||||
分区使用命令行分区工具`parted`
|
||||
|
||||
**parted需要管理权限。**
|
||||
|
||||
```bash
|
||||
sudo parted /dev/sda #选择第一个磁盘,直接输入sudo parted 默认选择/dev/sda
|
||||
```
|
||||
|
||||
parted命令说明
|
||||
```bash
|
||||
print all #显示当前系统所有磁盘
|
||||
|
||||
select /dev/sdb #选择磁盘/dev/sdb 之后的所有操作均是针对于/dev/sdb直至下一个select
|
||||
|
||||
mktable gpt # 创建gpt分区表。如果已经有分区的磁盘,会提示,输入yes即可覆盖
|
||||
|
||||
mkpart primary 0% 100% #创建一个主分区,并且使用全部容量 0%开始100%结束。如果要分多个区可以自行修改。
|
||||
|
||||
q #quit 退出
|
||||
```
|
||||
|
||||
mkfs 分区格式化
|
||||
|
||||
**mkfs需要管理员权限**
|
||||
|
||||
```bash
|
||||
sudo mkfs.ext4 /dev/sda1 #将/dev/sda第一个分区格式化为ext4格式
|
||||
|
||||
sudo mkfs.ext4 -T /dev/sda1 #将/dev/sda第一个分区格式化为ext4格式,大硬盘用这个命令快
|
||||
|
||||
sudo mkfs.xfs /dev/sda1 #将/dev/sda第一个分区格式化为xfs格式。
|
||||
|
||||
sudo mkfs.ntfs /dev/sda1 #将/dev/sda第一个分区格式化为ntfs格式。此格式需要安装epel软件库和ntfsprogs, ntfs-3g软件包
|
||||
```
|
||||
|
||||
***我一般喜欢用xfs。***
|
||||
|
||||
### 安装docker
|
||||
|
||||
```bash
|
||||
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine podman runc
|
||||
|
||||
sudo yum install -y yum-utils
|
||||
|
||||
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
|
||||
|
||||
sudo sed -i 's|download.docker.com|mirrors.ustc.edu.cn/docker-ce|g' /etc/yum.repo.d/docker-ce.repo
|
||||
|
||||
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
|
||||
```
|
||||
|
||||
启动docker并配置docker开机自启动
|
||||
```bash
|
||||
sudo systemctl enable --now docker
|
||||
```
|
||||
### lvm分区
|
||||
|
||||
进入root账号
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
```
|
||||
|
||||
创建pv,删除使用pvremove
|
||||
```bash
|
||||
pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
|
||||
|
||||
查看创建的pv
|
||||
|
||||
```bash
|
||||
pvs #pvdisplay
|
||||
```
|
||||
|
||||
创建vg 删除使用vgremove
|
||||
|
||||
```bash
|
||||
vgcreate vg_data /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
|
||||
```
|
||||
|
||||
查看创建的vg
|
||||
|
||||
```bash
|
||||
vgs #vgdisplay
|
||||
```
|
||||
|
||||
创建 lv 删除使用 lvremove
|
||||
|
||||
```bash
|
||||
lvcreate -l 100%FREE -n lv_data vg_data
|
||||
```
|
||||
|
||||
创建RAID10 lv。这里是软RAID,有条件可以硬raid。
|
||||
|
||||
```bash
|
||||
lvcreate --type raid10 --raidintegrity y -L 7.2T -n lv_data vg_raid
|
||||
```
|
||||
|
||||
查看创建的lv
|
||||
|
||||
```bash
|
||||
lvs #lvdisplay
|
||||
```
|
||||
|
||||
格式化lvm磁盘。raid10盘格式化时间比较长
|
||||
|
||||
```bash
|
||||
mkfs.xfs /dev/mapper/vg_data-lv_data
|
||||
|
||||
mkfs.xfs /dev/mapper/vg_raid-lv_data
|
||||
```
|
||||
|
||||
挂载lvm磁盘
|
||||
|
||||
```bash
|
||||
mkdir /data /private
|
||||
|
||||
echo '/dev/mapper/vg_data-lv_data /data xfs defaults 1 2' >> /etc/fstab
|
||||
|
||||
echo '/dev/mapper/vg_raid-lv_data /private xfs defaults 1 2' >> /etc/fstab
|
||||
|
||||
mount -a
|
||||
|
||||
exit
|
||||
|
||||
chown -R $(whoami) /data
|
||||
|
||||
chown -R $(whoami) /private
|
||||
|
||||
```
|
||||
|
||||
**注意最后两行修改所有者,不改的话docker挂载进去可能没权限读写**
|
||||
|
||||
查看磁盘信息
|
||||
|
||||
```bash
|
||||
df -lh
|
||||
```
|
||||
|
||||
安装配置nfs
|
||||
|
||||
安装
|
||||
|
||||
```bash
|
||||
sudo dnf install nfs-utils rpcbind
|
||||
```
|
||||
|
||||
设置为开机自启动
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now ntfs-server rpcbind
|
||||
```
|
||||
|
||||
配置共享目录
|
||||
|
||||
```bash
|
||||
vim /etc/exports #下面是内容,这里视频使用ro权限
|
||||
|
||||
/data/video 10.0.0.0/24(ro,insecure,sync,no_root_squash,no_subtree_check)
|
||||
|
||||
```
|
||||
|
||||
应用
|
||||
|
||||
```bash
|
||||
sudo exportfs -a
|
||||
```
|
||||
|
||||
创建网桥
|
||||
|
||||
不需要虚拟机不需要此步骤
|
||||
|
||||
查看当前网络连接信息
|
||||
|
||||
```bash
|
||||
nmcli con show
|
||||
```
|
||||
创建网桥
|
||||
|
||||
```bash
|
||||
nmcli con add type bridge ifname br0
|
||||
```
|
||||
绑定网桥到网卡
|
||||
|
||||
```bash
|
||||
nmcli con add type bridge-slave ifname eno1 master br0
|
||||
```
|
||||
启动网桥
|
||||
|
||||
```bash
|
||||
nmcli con up br0
|
||||
```
|
||||
配置 ip地址
|
||||
|
||||
```bash
|
||||
sudo nmcli c edit br0
|
||||
```
|
||||
以下命令在nmcli命令行下
|
||||
|
||||
```bash
|
||||
print ipv4
|
||||
set ipv4.addresses 10.0.0.128/24
|
||||
|
||||
set ipv4.gateway 10.0.0.254
|
||||
|
||||
set ipv4.dns 10.0.0.254 223.5.5.5
|
||||
|
||||
save
|
||||
|
||||
q
|
||||
```
|
||||
重启网卡/重启电脑
|
||||
|
||||
```bash
|
||||
sudo nmcli c reload
|
||||
|
||||
sudo nmcli c down br0 && sudo nmcli c up br0
|
||||
```
|
||||
|
||||
安装虚拟机
|
||||
|
||||
使用难用的virt-manager界面操作。
|
||||
|
||||
查看一下库里有哪些软件组
|
||||
|
||||
```bash
|
||||
sudo dnf grouplist
|
||||
```
|
||||
|
||||
安装相关软件
|
||||
|
||||
```bash
|
||||
sudo dnf groupinstall 'Virtualization Host'
|
||||
|
||||
sudo dnf install virt-manager
|
||||
```
|
||||
|
||||
注意: 也可以只安装virt,全命令行操作。
|
||||
|
||||
转换openwrt的img文件为qcow2格式
|
||||
|
||||
```bash
|
||||
qemu-img convert -o qcow2 openwrt.img openwrt.qcow2
|
||||
```
|
||||
|
||||
## docker部署filebrowser/qbittorrent/jellyfin
|
||||
|
||||
### jellyfin
|
||||
|
||||
```bash
|
||||
sudo docker run -d
|
||||
|
||||
-p 8096:8096
|
||||
|
||||
--name jellyfin
|
||||
|
||||
--user 1000:1000
|
||||
|
||||
--volume /opt/jellyfin/config:/config
|
||||
|
||||
--volume /opt/jellyfin/cache:/cache
|
||||
|
||||
--mount type=bind,source=/data/video,target=/media
|
||||
|
||||
--restart=unless-stopped
|
||||
|
||||
jellyfin/jellyfin
|
||||
```
|
||||
|
||||
### filebrowser
|
||||
|
||||
```bash
|
||||
sudo docker run
|
||||
|
||||
--name filebrowser -m 4g --restart unless-stopped -d
|
||||
|
||||
-v /data:/srv/data
|
||||
|
||||
-v /private:/srv/private
|
||||
|
||||
-v /opt/filebrowser/filebrowser.db:/database/filebrowser.db
|
||||
|
||||
-v /opt/filebrowser/settings.json:/config/settings.json
|
||||
|
||||
-e PUID=$(id -u)
|
||||
|
||||
-e PGID=$(id -g)
|
||||
|
||||
-p 8080:80
|
||||
|
||||
filebrowser/filebrowser:s6
|
||||
```
|
||||
|
||||
### qbittorrent
|
||||
|
||||
```bash
|
||||
sudo docker run -d
|
||||
|
||||
--name=qbittorrent
|
||||
|
||||
-e PUID=1000
|
||||
|
||||
-e PGID=1000
|
||||
|
||||
-e TZ=Asia/Shanghai
|
||||
|
||||
-e WEBUI_PORT=8081
|
||||
|
||||
-e TORRENTING_PORT=6881
|
||||
|
||||
-p 8081:8081
|
||||
|
||||
-p 6881:6881
|
||||
|
||||
-p 6881:6881/udp
|
||||
|
||||
-v /opt/qbittorrent/config:/config
|
||||
|
||||
-v /data/downloads:/downloads
|
||||
|
||||
--restart unless-stopped
|
||||
|
||||
lscr.io/linuxserver/qbittorrent:latest
|
||||
```
|
||||
|
||||
### 配置nginx
|
||||
|
||||
安装nginx
|
||||
|
||||
```bash
|
||||
sudo dnf install nginx
|
||||
```
|
||||
|
||||
配置filebrowser,能用就行,不做优化。替换自己的域名
|
||||
|
||||
```bash
|
||||
cat EOF< |sudo tee -a /etc/nginx/conf.d/filebrowser.conf
|
||||
|
||||
server {
|
||||
|
||||
server_name files.nas.com;
|
||||
|
||||
location / {
|
||||
|
||||
proxy_pass http://localhost:8080;
|
||||
|
||||
}
|
||||
|
||||
listen 80;
|
||||
|
||||
}
|
||||
|
||||
EOF
|
||||
```
|
||||
|
||||
配置qbittorrent,能用就行,不做优化。替换自己的域名
|
||||
|
||||
```bash
|
||||
cat EOF< |sudo tee -a /etc/nginx/conf.d/qbittorrent.conf
|
||||
|
||||
server {
|
||||
|
||||
server_name bt.nas.com;
|
||||
|
||||
location / {
|
||||
|
||||
proxy_pass http://localhost:8081;
|
||||
|
||||
}
|
||||
|
||||
listen 80;
|
||||
|
||||
}
|
||||
|
||||
EOF
|
||||
```
|
||||
|
||||
配置jellyfin,能用就行,不做优化。替换自己的域名
|
||||
|
||||
```bash
|
||||
cat EOF< |sudo tee -a /etc/nginx/conf.d/jellyfin.conf
|
||||
|
||||
server {
|
||||
|
||||
server_name video.nas.com;
|
||||
|
||||
location / {
|
||||
|
||||
proxy_pass http://localhost:8096;
|
||||
|
||||
}
|
||||
|
||||
listen 80;
|
||||
|
||||
}
|
||||
|
||||
EOF
|
||||
```
|
||||
|
||||
还有K8S,已经装好了,暂时就不写了。准备用coredns暂时也还没有配置。原生Linux,服务全部自定义,没有继承nas系统的各种限制,就一个字,爽!没事还能拿来玩个steam,岂不美哉!
|