[メモ] OMV5でNASる (x86_64系/2021年初夏)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/e99b5b56-743e-ec38-86e9-94ce969f2abb.png)

# 概要

- 古パソに、[DietPi](https://dietpi.com/)ベースにして、[OpenMediaVault 5](https://www.openmediavault.org/)を入れて、NASを作る
  - OMV5は、Debianベースのものにインストール
  - OMV配布のISOイメージで、古いUEFIのPCにインストールしたら、`NO BOOTABLE DEVICE`となってしまったので、(ラズパイで!!)実績のあるDietPiを入れて、インストールすることにした。

- Dockerベースでいろいろ拡張できる(っぽいぞ)
- 1Gbpsのネットワーク分は出てる?<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/76696a9b-be30-621c-0446-34cb447ed075.png)<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/6c7798b8-7ba5-b2c3-428e-56dcbf894904.png)
- プロ環(プログラミング環境)関連、ってことでQiitaで書いてもええよね。

# 環境
- x86_64系のPC (インストール先が全部消去される)

    - Acer ES1-512 (2014年製くらい??)
        - CPU: [Intel Celeron N2840 (2.16GHz)](https://ark.intel.com/content/www/jp/ja/ark/products/82103/intel-celeron-processor-n2840-1m-cache-up-to-2-58-ghz.html)
        - Memory: 4GB
        - HDD: 500GB
        - LAN: Realtek RTL8211 (?) -- QEMUでのBridge接続がうまくいかないかったのは、こいつのせいか？？

<!--
    - Lenovo ThinkPad T450s ... 軽く入れてみただけ
        - CPU: Intel Core i7-5600U (2.60GHz)
        - Memory: 8GB
        - SSD: 240GB (?)
        - LAN: Intel I-218LM
    - Gigabyte GB-BRi5H-8250
        - CPU: Intel Core i5-8250U
        - Memory: 32GB
        - SSD: 240GB (?)
        - LAN: Intel
-->

- Windows PC
    - ISOイメージのダウンロードと、rufusでUSBへISOイメージ書き込み
    - ブラウザ開いて、OpenMediaVaultのWebUIに接続



# 手順
## USBメディア作成
- ISOファイルを [rufus](https://rufus.ie/ja/)にて USBフラッシュメディアに焼く。


## DietPi
### DietPi::インストール
1. [DietPi](https://dietpi.com/)のサイトで、[Download] => [PC/VM]にてフィルタ。Native PC(UEFI) をクリック、Installer Imageから、ファイルをダウンロード。解凍して、ISOファイルを焼く
    https://dietpi.com/downloads/images/DietPi_NativePC-UEFI-x86_64-Buster_Installer.7z
2. USBメディアから起動。　電源入れたら、[F12]をぽちぽちおすと、起動デバイスが選べる機種がおおいかと。
3. Clonezillaが起動する. 基本Enterキー。インストール先を間違えないように
4. インストールが終わると、電源オフになる。

- うまくインストーラーが起動しない場合
    - BIOS設定で、Secure bootを、Disabled に。
    - だめなら、Native PC(BIOS/CSM)を使ってみる


### DietPi::初期設定
1. 有線接続(Ethernet)して、電源オン。

2. 初回起動時
    1. 初回ログイン: ユーザ:`root` / パスワード:`dietpi`
    2. ネットにつながって、自動更新される。
    3. DietPi-Surveyに参加する(OptIn)か、参加しない(OptOut)か選ぶ。
    4. DietPi-Softwareでインストールするソフトのデフォルトパスワード`dietpi`を変更するか?<br>=> `<OK>`変更する / `<Cancel>`変更しない
    5. `root`と`dietpi`というユーザのパスワードを変更するか? <br>=> `<OK>`<font color='green'>変更する</font> / `<Cancel>`変更しない
    6. シリアルコンソールを禁止するか   <br>=> `<OK>`<font color='green'>禁止する</font> / `<Cancel>`禁止しない
    7. DietPi-Softwareというのが立ち上がる。
4. DietPi-Software
    - DietePi Config 
        - Advanced Options > RTC mode > [Emulate] => [Hardware]に変更
        - Language/Regional Options > TimeZone(default: `Europe/London`)とKeyboard(default `gb`)の設定変更
    - DietPi-Software
        - SSH Server: [Dropbear] => [Open SSH Server]に変更
        - 設定したら、"Install"を選択

5. `reboot` # 再起動

sshで`root`ログインできるようになってます。


## OpenMediaVault 5

### OMV5::インストール
- 以下実行

    ```bash
    time wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
    #    
    # https://forum.openmediavault.org/index.php?thread/32182-rpiv4-network-and-plugin-problem    /&postID=237002#post237002
    rm /etc/systemd/network/99-default.link
    omv-salt deploy run systemd-networkd
    #
    # 再起動
    reboot
    ```

- なんか、１つFailedになっているっぽいけど... `set_timezone`? ならええか. どんまい。

    ```
    ...
    Summary for DietPi
    -------------
    Succeeded: 77 (changed=26)
    Failed:     1
    -------------
    Total states run:     78
    Total run time:   16.678 s
    proftpd.service is not a native service, redirecting to systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install disable proftpd
    Done.

    real    15m54.973s
    user    8m52.709s
    sys     1m4.006s
    root@DietPi:~#
    ```




### OMV5::初期設定
1. なんらかのPCで、ブラウザを開いて、`http://<OMVをインストールしたPCのIPアドレス>/`にアクセス
2. ログイン: ユーザ:`admin` / パスワード:`openmediavault`
3. 設定 - 個々のメニューで設定を [Save/保存]したら、[Apply/適応]する。<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/355de608-b518-f01c-eb5e-b51a4e8129d8.png)

    1. Web管理者パスワード変更<br>System > General Settings: [Web Administrator Password]
    2. 日付関連<br> System > Date & Time
    3. ホスト名<br>System > Network: [General]
    4. (※お好みで)ネットワークのインターフェースをブリッジにする(KVM/QEMU使用するが、うまくうごかないNIC?もあるっぽい)
        1. System > Network: [Interfaces]
        1. eth0 を選択して、[Delete] => [Yes]
        1. [Add] => Bridge<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/5d29d641-d866-66a2-532a-0419cd98fe97.png)
        1. Applyを押す<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/94a3f9b4-fac9-5934-8f20-ce292c5b9777.png)

    5. Docker/Portainer のインストール<br>System > OMV-Extras :  [Docker]<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/a686fd0b-0cba-291e-a7fb-1635b1058f73.png)
    6. Cockpitのインストール<br>System > OMV-Extras :  [Cockpit] で `+Install`

 


### OMV5: 共有ディスク・ネットワーク共有の設定

- 概要  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/e99b5b56-743e-ec38-86e9-94ce969f2abb.png)

1. ディスクを認識させる(Disk)
    - USBの外付けディスクを挿して、ここで、Scanを押して、認識させる<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/3c308762-918f-ce0c-3a35-5864df57b9e3.png)
2. ファイルシステム(FileSystem)
    1. ファイルシステムを作成<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/2acf3449-fc31-d4ea-6e7c-eade4d82c889.png)
    2. ファイルシステムをマウントする<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/71479b63-335c-e739-1fe7-d8a103afa988.png)
<br>マウントできるとこんな感じ<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/171a8603-6713-6bd0-1021-79f3d1a4a81f.png)
3. 共有フォルダ(Shared Folders)の設定
    - 共有フォルダの作成<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/21a3e469-792b-f859-66ba-41f3546516cf.png)
    - こんな感じ <br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/40b34906-6977-263a-7b3b-7aaafa9932f8.png)


4. SMB/CIFSで共有設定
    1. SMB/CIFSを有効にする。<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/b8000067-6ab4-54de-bf1b-7f43bfa0016b.png)
    2. 共有の設定 <br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/a1c45a75-e79b-837b-1395-e4f226289052.png)
    TimeMachineとかのスイッチもあるので、Macのバックアップとかにも使える?
 
### ユーザ関連
1. homeフォルダを有効にする?<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/ed215955-c99e-7758-1735-15c00785e76b.png)
2. ユーザ作成<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/13c8cc3f-02c8-050a-5409-9e20f8587b5c.png)
    - 適当に埋めて、Groupsタブへ<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/63629241-2df4-4d0b-a3ac-2a5043e8ffa4.png)
    - <font color='red'>Groupsの設定</font>
        - users: キホソ
        - sambashare : たぶん、smb共有で必要なんじゃないかな？
        - ssh : sshログインするのに必要かも?
        - sudo : sudo する?
        - docker : 必要な人は
        - kvm, libvirt : 必要な人は
3. 読み書き権限の設定<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/cbbd100d-503b-685c-c726-98668f51eece.png)
<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/031f9e4b-de79-f66b-629e-08d3fbdcec27.png)



5. クライアントから使う
    1. Windows
        - エクスプローラ開いて、アドレスバーに `\\<OMVのIPアドレス または ホスト名>\`を入れて Enterキー。ユーザとパスワードは設定したやつ
<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/7be63d6f-1f91-3a9d-0e48-20b6d866ce57.png)
<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/0441a4a2-be96-4567-4d11-645af58171e0.png)
        - ドライブに割り当て<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/72c22417-06c3-2c42-dabd-ad2fcfc4e4cc.png)<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/8d81bb10-773f-fb2e-8000-a44fbdd2a92b.png)


    2. lubuntuとか<br>ファイルマネージャっぽいのを開いて、ネットワーククリックすると、勝手に探してくれたような..
    3. mac<br> `smb://<OMVのIPアドレス または ホスト名>/` でいけるんじゃなかったっけかな...
    4. iOS<br>で、VLCから。ネットワークで、ファイルサーバーのとこに出てくる


## Dockerベースでいろいろ拡張

- [Nextcloud](https://nextcloud.com/): 
- [AdguardHome](https://adguard.com/ja/adguard-home/overview.html):
- [Jellyfin](https://jellyfin.org/): メディアサーバ
- apt-cacher-ng
- calibreweb
- dashmachine
- jdownloader
- netdata
- syncthing
- torsocksproxy
- transmission


## Cockpit
- ブラウザで、`https://<OMVのIPアドレス>:9090/`にアクセス. httpsなので、セキュリティがごにょごにょ言われるが、先に進む。
- 既存ユーザ(`root`)で、ログイン。
- 端末...CTRL-なんちゃら、はブラウザのほうのショートカットキーになることがある..<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/ba96ee3d-0067-c1b5-531d-4a266888d9a7.png)


## 仮想マシン(KVM/QEMU)
- Cockpitを入れると、仮想マシンが、使えるようになってるっぽいぞ
- vagrant-libvirt: Vagrantでさくっと。

### Vagrantインストール
```
VAGRANT_VERSION=2.2.16
wget https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}_x86_64.deb && \
sudo apt install -y ./vagrant_${VAGRANT_VERSION}_x86_64.deb && \
sudo apt install -y build-essential libvirt-dev pkg-config && \
vagrant plugin install vagrant-libvirt && \
vagrant plugin install vagrant-mutate
```

### Vagrantで実行例

```bash
mkdir ~/vmwork
cd ~/vmwork
vagrant init generic/alpine312  # alpine 3.12のイメージ使用
vagrant up   # 仮想マシン起動。初回起動時、イメージのダウンロードをするので時間かかる。
vagrant ssh  # sshログイン
#
#...仮想マシン内での作業
ip a
exit  # 抜けて、ホストに戻る
#...
#

vagrant halt # 仮想マシンシャットダウン。作業内容はのこる。vagrant upで起動すればよい。
# vagrant destroy -f  # 仮想マシン削除。　作業内容も消される。
```






# ことば

- [NAS](https://ja.wikipedia.org/wiki/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A2%E3%82%BF%E3%83%83%E3%83%81%E3%83%88%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8): Network Attached Storage ネットワークアタッチトストレージ
  > ネットワークアタッチドストレージ (Network Attached Storage) とは、コンピュータネットワークに直接接続して使用するファイルサーバ。
- UEFI: [Unified Extensible Firmware Interface](https://ja.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface) 
- OMV: [OpenMediaVault](https://ja.wikipedia.org/wiki/OpenMediaVault)
  > OpenMediaVault（OMV）は、Debianをカーネルに用いたLinuxのフリーのNASシステム。
- KVM: [Kernel-based Virtual Machine](https://ja.wikipedia.org/wiki/Kernel-based_Virtual_Machine)
  > Kernel-based Virtual Machine (KVM) は、Linuxカーネルをハイパーバイザとして機能させるための仮想化モジュールである。
- SMB: [Server Message Block](https://ja.wikipedia.org/wiki/Server_Message_Block)
  > Server Message Block (SMB) は、主にWindowsを中心とした環境でLANを通じてファイル共有やプリンタ共有などに使用される通信プロトコルの総称。OSI参照モデルでは第7層アプリケーション層に該当する。
- [CIFS](https://ja.wikipedia.org/wiki/Server_Message_Block#CIFS): Common Internet File System
  > マイクロソフトは1996年にSMBをCommon Internet File System (CIFS) と改称し、Windows NT 3.51、Windows NT 4.0、Windows 98に搭載した
---
- [DietPi](https://dietpi.com/): 
- [QEMU](https://ja.wikipedia.org/wiki/QEMU): 
- [Docker](https://ja.wikipedia.org/wiki/Docker):
- [Samba](https://ja.wikipedia.org/wiki/Samba):
- [NextCloud](https://ja.wikipedia.org/wiki/Nextcloud):
- [Jellyfin](https://en.wikipedia.org/wiki/Jellyfin):





# その他
1. ディスクは、`/srv/dev-XXX` にマウントされる.
2. カーネルが更新できない。<br>`sudo apt install linux-image-5.10.0-0.bpo.5-amd64`<br>(問題なければ、気にしないほうが... "触らぬ神に祟りなし" ...)
3. `DietPi-Run_NTPD | Waiting for completion ..`が出続ける
    `sudo dietpi-config`で、 `Advanced Options` > `Time sync mode` > `[Custom]`に変更(よくわからんけど)

4. バックライト変更 / On / Off

    ```
    # Backlightの値の最大値取得
    cat /sys/class/backlight/intel_backlight/max_brightness 
    # 明るさ設定
    echo 123 | sudo tee /sys/class/backlight/intel_backlight/brightness

    # BL Off
    echo 1  | sudo tee /sys/class/backlight/intel_backlight/bl_power
    # BL On
    echo 0  | sudo tee /sys/class/backlight/intel_backlight/bl_power
    ```
5. OMV5::OMVのシステムの入ったディスクにDATAパーティションをつくる
    - OMV5は、通常、システム用とデータ用で、ディスクを別のを使用する。
    - OMV5の公式ではおすすめしていない
    - gpartedで、既存のをshrinkして空きを作り、新規パーティションをext4でつくる。


# TODO

1. KVM/QEMUで、Windows環境の構築の説明
    - とりあえず、動く.. ↓は、メモリ増やさないと厳しいな<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/f26f9278-50d6-20ce-be24-ce989d80afe6.png)
2. Docker関連??