Ergänzt um eine automatische Übernahme der Tags aus dem Forum. Man muss den Beiträgen in Mastodon ja auch Reichweite geben 🙂
[HOWTO] Verschlüsseltes NAS aufsetzen
-
Der Plan
Einen ROCKPro64 als verschlüsseltes NAS zu benutzen.
Hardware
- ROCKPro64 2GB v2.1
- Netzteil für ROCKPro64
- eMMC Modul 32GB
- PCIe SATA Adapter
- 2 St. HDD 2,5 Zoll 2TB
- 2 St. SATA Kabel
- Spannungsversorgungsleitung für zwei SATA Laufwerke
Software
Ein Bionic-Minimal soll die Basis sein.
Installation des Systemes
Wir flashen das Image auf eine SD-Karte. Diesen Schritt kann man sich ersparen, wenn man den USB-Adapter für eMMC-Module hat. Muss ich beim nächsten Mal mitbestellen. Aber man weiß sich ja zu helfen.
Die SD-Karte in den ROCKPro64, eMMC-Modul rein und den ROCKPro64 einschalten.
rock64@rockpro64:~$ uname -a Linux rockpro64 4.4.132-1075-rockchip-ayufan-ga83beded8524 #1 SMP Thu Jul 26 08:22:22 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
Wir kopieren jetzt das System auf das eMMC-Modul nach dieser Anleitung.
Erledigt.
rock64@rockpro64:~$ sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M [sudo] password for rock64: 3798+1 records in 3798+1 records out 15931539456 bytes (16 GB, 15 GiB) copied, 673.512 s, 23.7 MB/s
Ok, dann davon starten, SD-Karte raus und vom eMMC-Modul booten. Mal nachschauen ob es geklappt hat.
rock64@rockpro64:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 992M 0 992M 0% /dev tmpfs 200M 484K 199M 1% /run /dev/mmcblk1p7 15G 1.2G 13G 9% / tmpfs 996M 0 996M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 996M 0 996M 0% /sys/fs/cgroup /dev/mmcblk1p6 112M 4.0K 112M 1% /boot/efi tmpfs 200M 0 200M 0% /run/user/1000
Ok, hier sieht man das ich / noch nicht resized habe. Auf deutsch, die Partition muss noch vergrößert werden, da sie nur 15G groß ist. Auch logisch, wir haben ja mit dd von einer 16GB großen SD-Karte kopiert. Aber Kamil hat da ein nettes Script für.
cd /usr/local/sbin
Dort findet man das Script
sudo ./resize_rootfs.sh
Die Ausgabe
rock64@rockpro64:/usr/local/sbin$ sudo ./resize_rootfs.sh [sudo] password for rock64: Resizing /dev/mmcblk1 (sd/emmc -- /dev/mmcblk1p7)... + sgdisk -e /dev/mmcblk1 Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully. + echo ,+,,, + sfdisk /dev/mmcblk1 -N7 --force Checking that no-one is using this disk right now ... FAILED This disk is currently in use - repartitioning is probably a bad idea. Umount all file systems, and swapoff all swap partitions on this disk. Use the --no-reread flag to suppress this check. Disk /dev/mmcblk1: 28.9 GiB, 31037849600 bytes, 60620800 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 2C9A4A22-7AA8-4A1B-815E-0C3E2E7065E6 Old situation: Device Start End Sectors Size Type /dev/mmcblk1p1 64 8063 8000 3.9M Linux filesystem /dev/mmcblk1p2 8064 8191 128 64K Linux filesystem /dev/mmcblk1p3 8192 16383 8192 4M Linux filesystem /dev/mmcblk1p4 16384 24575 8192 4M Linux filesystem /dev/mmcblk1p5 24576 32767 8192 4M Linux filesystem /dev/mmcblk1p6 32768 262143 229376 112M Microsoft basic data /dev/mmcblk1p7 262144 31116254 30854111 14.7G Linux filesystem /dev/mmcblk1p7: New situation: Disklabel type: gpt Disk identifier: 2C9A4A22-7AA8-4A1B-815E-0C3E2E7065E6 Device Start End Sectors Size Type /dev/mmcblk1p1 64 8063 8000 3.9M Linux filesystem /dev/mmcblk1p2 8064 8191 128 64K Linux filesystem /dev/mmcblk1p3 8192 16383 8192 4M Linux filesystem /dev/mmcblk1p4 16384 24575 8192 4M Linux filesystem /dev/mmcblk1p5 24576 32767 8192 4M Linux filesystem /dev/mmcblk1p6 32768 262143 229376 112M Microsoft basic data /dev/mmcblk1p7 262144 60619709 60357566 28.8G Linux filesystem The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Device or resource busy The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8). Syncing disks. + partprobe /dev/mmcblk1 + resize2fs /dev/mmcblk1p7 resize2fs 1.44.1 (24-Mar-2018) Filesystem at /dev/mmcblk1p7 is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 4 The filesystem on /dev/mmcblk1p7 is now 7544695 (4k) blocks long.
Neustarten und überprüfen
sudo reboot
Kurz überprüfen
rock64@rockpro64:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 992M 0 992M 0% /dev tmpfs 200M 484K 199M 1% /run /dev/mmcblk1p7 29G 1.2G 26G 5% / tmpfs 996M 0 996M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 996M 0 996M 0% /sys/fs/cgroup /dev/mmcblk1p6 112M 4.0K 112M 1% /boot/efi tmpfs 200M 0 200M 0% /run/user/1000
Fertig! Das System ist nun auf dem eMMC-Modul. Wenn ihr kein eMMC-Modul habt, könnt ihr das alles auslassen und arbeitet einfach mit der SD-Karte. Vorausgesetzt man hat eine schnelle SD-Karte ist das sogar mittlerweile eine Option. Die sind sehr schnell geworden und kosten auch nicht mehr die Welt. Ok, weiter geht's
Cryptsetup
Cryptsetup installieren
rock64@rockpro64:~$ sudo apt-get update && sudo apt-get install cryptsetup Hit:1 http://ppa.launchpad.net/ayufan/rock64-ppa/ubuntu bionic InRelease Hit:2 http://ports.ubuntu.com/ubuntu-ports bionic InRelease Hit:3 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease Get:4 http://deb.ayufan.eu/orgs/ayufan-rock64/releases InRelease [1335 B] Hit:5 http://ppa.launchpad.net/ayufan/all-ppa/ubuntu bionic InRelease Hit:6 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease Fetched 1335 B in 2s (872 B/s) Reading package lists... Done Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: cryptsetup-bin Suggested packages: keyutils Recommended packages: busybox-static | busybox plymouth The following NEW packages will be installed: cryptsetup cryptsetup-bin 0 upgraded, 2 newly installed, 0 to remove and 12 not upgraded. Need to get 236 kB of archives. After this operation, 816 kB of additional disk space will be used. Do you want to continue? [Y/n] Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 cryptsetup-bin arm64 2:2.0.2-1ubuntu1 [85.6 kB] Get:2 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 cryptsetup arm64 2:2.0.2-1ubuntu1 [150 kB] Fetched 236 kB in 0s (1142 kB/s) perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "de_DE.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory Preconfiguring packages ... Selecting previously unselected package cryptsetup-bin. (Reading database ... 46721 files and directories currently installed.) Preparing to unpack .../cryptsetup-bin_2%3a2.0.2-1ubuntu1_arm64.deb ... Unpacking cryptsetup-bin (2:2.0.2-1ubuntu1) ... Selecting previously unselected package cryptsetup. Preparing to unpack .../cryptsetup_2%3a2.0.2-1ubuntu1_arm64.deb ... Unpacking cryptsetup (2:2.0.2-1ubuntu1) ... Processing triggers for systemd (237-3ubuntu10.3) ... Setting up cryptsetup-bin (2:2.0.2-1ubuntu1) ... Setting up cryptsetup (2:2.0.2-1ubuntu1) ... locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory update-initramfs: deferring update (trigger activated) Processing triggers for systemd (237-3ubuntu10.3) ... Processing triggers for initramfs-tools (0.130ubuntu3.1) ... update-initramfs: Generating /boot/initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524 cryptsetup: WARNING: could not determine root device from /etc/fstab
Dabei fallen mir zwei Dinge auf.
perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "de_DE.UTF-8" are supported and installed on your system.
Das läßt sich mit dieser Anleitung einfach fixen.
Und das hier
cryptsetup: WARNING: could not determine root device from /etc/fstab
Dazu fällt mir aktuell nichts ein !?
Cryptsetup benchmark
rock64@rockpro64:~$ cryptsetup benchmark # Tests are approximate using memory only (no storage IO). PBKDF2-sha1 714288 iterations per second for 256-bit key PBKDF2-sha256 1351257 iterations per second for 256-bit key PBKDF2-sha512 438367 iterations per second for 256-bit key PBKDF2-ripemd160 334367 iterations per second for 256-bit key PBKDF2-whirlpool 155852 iterations per second for 256-bit key argon2i 4 iterations, 326215 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time) argon2id 4 iterations, 345708 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time) # Algorithm | Key | Encryption | Decryption aes-cbc 128b 527.2 MiB/s 697.3 MiB/s serpent-cbc 128b N/A N/A twofish-cbc 128b 72.3 MiB/s 74.1 MiB/s aes-cbc 256b 456.2 MiB/s 648.1 MiB/s serpent-cbc 256b N/A N/A twofish-cbc 256b 72.7 MiB/s 74.3 MiB/s aes-xts 256b 586.3 MiB/s 589.0 MiB/s serpent-xts 256b N/A N/A twofish-xts 256b N/A N/A aes-xts 512b 542.1 MiB/s 546.5 MiB/s serpent-xts 512b N/A N/A twofish-xts 512b N/A N/A
Quelle: https://kneit.in/2015/09/17/brtfs-raid-on-dmcrypt.html
Ich werde jetzt schnell beide HHD's partitionieren.
rock64@rockpro64:~$ fdisk -l fdisk: cannot open /dev/ram0: Permission denied fdisk: cannot open /dev/mtdblock0: Permission denied fdisk: cannot open /dev/mtdblock1: Permission denied fdisk: cannot open /dev/mtdblock2: Permission denied fdisk: cannot open /dev/mmcblk1: Permission denied fdisk: cannot open /dev/mmcblk1rpmb: Permission denied fdisk: cannot open /dev/mmcblk1boot1: Permission denied fdisk: cannot open /dev/mmcblk1boot0: Permission denied fdisk: cannot open /dev/sda: Permission denied fdisk: cannot open /dev/sdb: Permission denied fdisk: cannot open /dev/zram0: Permission denied fdisk: cannot open /dev/zram1: Permission denied fdisk: cannot open /dev/zram2: Permission denied fdisk: cannot open /dev/zram3: Permission denied fdisk: cannot open /dev/zram4: Permission denied fdisk: cannot open /dev/zram5: Permission denied
Die HDD's sind sda und sdb.
sudo fdisk /dev/sda sudo fdisk /dev/sdb
Ich gehe hier nicht weiter drauf ein, richtet eine Partition ein und fertig. Natürlich für beide Platten.
Ergebnis
Disk /dev/sda: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: ECA86F86-787E-483F-BD79-DC980BCA9447 Device Start End Sectors Size Type /dev/sda1 2048 3907029134 3907027087 1,8T Linux filesystem Disk /dev/sdb: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 1978A3C9-E914-41FB-8788-5518DBB77B2F Device Start End Sectors Size Type /dev/sdb1 2048 3907029134 3907027087 1,8T Linux filesystem
Beide Festplatten verschlüsseln
rock64@rockpro64:~$ sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sda1 WARNING! ======== This will overwrite data on /dev/sda1 irrevocably. Are you sure? (Type uppercase yes): YES Enter passphrase for /dev/sda1: Verify passphrase:
Das selbe mit sdb1 machen!
rock64@rockpro64:~$ sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sdb1 WARNING! ======== This will overwrite data on /dev/sdb1 irrevocably. Are you sure? (Type uppercase yes): YES Enter passphrase for /dev/sdb1: Verify passphrase: System is out of entropy while generating volume key. Please move mouse or type some text in another window to gather some random events. Generating key (32% done). Generating key (32% done). Generating key (32% done). Generating key (32% done). Generating key (42% done). Generating key (42% done). Generating key (42% done). Generating key (42% done). Generating key (42% done). Generating key (51% done). Generating key (51% done). Generating key (51% done). Generating key (51% done). Generating key (51% done). Generating key (60% done). Generating key (60% done). Generating key (60% done). Generating key (60% done). Generating key (60% done). Generating key (70% done). Generating key (70% done). Generating key (70% done). Generating key (70% done). Generating key (70% done). Generating key (79% done). Generating key (79% done). Generating key (79% done). Generating key (79% done). Generating key (79% done). Generating key (89% done). Generating key (89% done). Generating key (89% done). Generating key (89% done). Generating key (98% done). Generating key (98% done). Generating key (98% done). Generating key (98% done). Generating key (100% done).
Fertig! Beide HDD's sind jetzt verschlüsselt. Als nächstes
sda1
rock64@rockpro64:~$ sudo cryptsetup open /dev/sda1 btrfs_pool0 Enter passphrase for /dev/sda1:
sdb1
rock64@rockpro64:~$ sudo cryptsetup open /dev/sdb1 btrfs_pool1 Enter passphrase for /dev/sdb1:
Beide HDD's sind jetzt entsperrt und können benutzt werden, das kann man auch sehen mit
rock64@rockpro64:~$ fdisk -l fdisk: cannot open /dev/ram0: Permission denied fdisk: cannot open /dev/mtdblock0: Permission denied fdisk: cannot open /dev/mtdblock1: Permission denied fdisk: cannot open /dev/mtdblock2: Permission denied fdisk: cannot open /dev/mmcblk1: Permission denied fdisk: cannot open /dev/mmcblk1rpmb: Permission denied fdisk: cannot open /dev/mmcblk1boot1: Permission denied fdisk: cannot open /dev/mmcblk1boot0: Permission denied fdisk: cannot open /dev/sda: Permission denied fdisk: cannot open /dev/sdb: Permission denied fdisk: cannot open /dev/zram0: Permission denied fdisk: cannot open /dev/zram1: Permission denied fdisk: cannot open /dev/zram2: Permission denied fdisk: cannot open /dev/zram3: Permission denied fdisk: cannot open /dev/zram4: Permission denied fdisk: cannot open /dev/zram5: Permission denied fdisk: cannot open /dev/mapper/btrfs_pool0: Permission denied fdisk: cannot open /dev/mapper/btrfs_pool1: Permission denied
Die beiden HDD's
fdisk: cannot open /dev/mapper/btrfs_pool0: Permission denied fdisk: cannot open /dev/mapper/btrfs_pool1: Permission denied
Das hilft uns aber nichts, da wir noch kein Filesystem aufgesetzt haben. Und dazu möchte ich gerne btrfs einsetzen.
Installieren
sudo apt-get install btrfs-tools
Filesystem & Raid1 anlegen
sudo mkfs.btrfs -m raid1 -d raid1 /dev/mapper/btrfs_pool0 /dev/mapper/btrfs_pool1
Ausgabe
rock64@rockpro64:~$ sudo mkfs.btrfs -m raid1 -d raid1 /dev/mapper/btrfs_pool0 /dev/mapper/btrfs_pool1 btrfs-progs v4.15.1 See http://btrfs.wiki.kernel.org for more information. Label: (null) UUID: f42fff01-ebdc-4972-9e75-5720ca319843 Node size: 16384 Sector size: 4096 Filesystem size: 3.64TiB Block group profiles: Data: RAID1 1.00GiB Metadata: RAID1 1.00GiB System: RAID1 8.00MiB SSD detected: no Incompat features: extref, skinny-metadata Number of devices: 2 Devices: ID SIZE PATH 1 1.82TiB /dev/mapper/btrfs_pool0 2 1.82TiB /dev/mapper/btrfs_pool1
Raid1 mounten
Verzeichnis anlegen
sudo mkdir /mnt/btrfs
Danach mounten
rock64@rockpro64:~$ sudo mount /dev/mapper/btrfs_pool0 /mnt/btrfs rock64@rockpro64:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 992M 0 992M 0% /dev tmpfs 200M 496K 199M 1% /run /dev/mmcblk1p7 29G 1,3G 26G 5% / tmpfs 996M 0 996M 0% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 996M 0 996M 0% /sys/fs/cgroup /dev/mmcblk1p6 112M 4,0K 112M 1% /boot/efi tmpfs 200M 0 200M 0% /run/user/1000 /dev/mapper/btrfs_pool0 1,9T 17M 1,9T 1% /mnt/btrfs
Hier wird das Raid1 gemountet, danach kurze Kontrolle. So weit sieht das gut aus. Jetzt schauen wir mal, ob das nach einem Reboot noch geht
Nach dem Start des Systemes müssen wir beide Platten entsperren. Dazu benötigt es drei Schritte
sudo cryptsetup open /dev/sda1 btrfs_pool0 sudo cryptsetup open /dev/sdb1 btrfs_pool1 sudo mount /dev/mapper/btrfs_pool0 /mnt/btrfs
Kontrolle
rock64@rockpro64:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 992M 0 992M 0% /dev tmpfs 200M 496K 199M 1% /run /dev/mmcblk1p7 29G 1,3G 26G 5% / tmpfs 996M 0 996M 0% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 996M 0 996M 0% /sys/fs/cgroup /dev/mmcblk1p6 112M 4,0K 112M 1% /boot/efi tmpfs 200M 0 200M 0% /run/user/1000 /dev/mapper/btrfs_pool0 1,9T 17M 1,9T 1% /mnt/btrfs
Da fehlt jetzt noch was Wichtiges. Der Benutzer muss noch eingestellt werden, sonst kann man in /mnt/btrfs nicht schreiben.
sudo chown -R rock64:rock64 /mnt/btrfs
Nun ist der Besitzer der User rock64.
hdparm
Mit hdparm kann man die HDDs schlafen legen. Gerade die mechanischen Dinger, können einem ganz schön auf die Nerven gehen. Da ich diese Installation später mal als NAS nutzen möchte, müssen die Platten nicht ewig laufen. Macht die mechanischen Dinger auch nur kaputt
Installation
rock64@rockpro64:/mnt$ sudo apt-get install hdparm Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: apmd Recommended packages: powermgmt-base The following NEW packages will be installed: hdparm 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 89.6 kB of archives. After this operation, 231 kB of additional disk space will be used. Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 hdparm arm64 9.54+ds-1 [89.6 kB] Fetched 89.6 kB in 0s (460 kB/s) perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "de_DE.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory Selecting previously unselected package hdparm. (Reading database ... 46794 files and directories currently installed.) Preparing to unpack .../hdparm_9.54+ds-1_arm64.deb ... Unpacking hdparm (9.54+ds-1) ... Setting up hdparm (9.54+ds-1) ...
Konfiguration
ls /dev/disk/by-id
Die ID's der HDDs auslesen. In meinem Fall sieht das so aus.
rock64@rockpro64:/dev/disk/by-id$ ls ata-ST2000LM015-2E8174_ZDZ2MY9W mmc-SC32G_0x601d3b65 mmc-SC32G_0x601d3b65-part4 wwn-0x5000c500b111120c ata-ST2000LM015-2E8174_ZDZ2MY9W-part1 mmc-SC32G_0x601d3b65-part1 mmc-SC32G_0x601d3b65-part5 wwn-0x5000c500b111120c-part1 ata-ST2000LM015-2E8174_ZDZ2MZ1W mmc-SC32G_0x601d3b65-part2 mmc-SC32G_0x601d3b65-part6 wwn-0x5000c500b1112c07 ata-ST2000LM015-2E8174_ZDZ2MZ1W-part1 mmc-SC32G_0x601d3b65-part3 mmc-SC32G_0x601d3b65-part7 wwn-0x5000c500b1112c07-part1
Das sind meine beiden Festplatten
- ata-ST2000LM015-2E8174_ZDZ2MY9W
- ata-ST2000LM015-2E8174_ZDZ2MZ1W
Config bearbeiten
sudo nano /etc/hdparm.conf
Das dann ans Ende der Datei. Sieht dann so aus
#HDDs schlafen legen nach 20 Minuten (240*5=1200Sek.=20Min.) /dev/disk/by-id/ata-ST2000LM015-2E8174_ZDZ2MY9W { # mult_sect_io = 16 # write_cache = off # dma = on spindown_time = 10 } /dev/disk/by-id/ata-ST2000LM015-2E8174_ZDZ2MZ1W { # mult_sect_io = 16 # write_cache = off # dma = on spindown_time = 10 }
Die 10 ist mein Testwert, man hat ja nicht ewig Zeit Danach mal eben neustarten und etwas warten, dann legen sich die Platten schlafen. Das machen sie natürlich nur, wenn es keine Aktivität gibt! Bei mir hat das wunderbar geklappt, nach einer knappen Minute waren sie leise.
Die 240 also 20 Minuten, benutze ich schon ewig auf meinem NAS, ohne Probleme. Also, nach dem Testen auf 240 umstellen! Neustarten nicht vergessen.
Fazit
So weit sieht das doch jetzt alles prima aus. Was jetzt noch fehlt, wäre das beim Starten automatisch die Passwörter abgefragt werden und das automatisch gemountet wird. Dazu eine Kontrolle ob auch die Daten korrekt geschrieben werden. Aber darüber muss ich nochmal nachdenken, ob das alles auch sinnvoll ist.
Erst mal eine Kaffee!
And many thanks to kyle kneitlinger for an very nice tutorial!
https://kneit.in/2015/09/17/brtfs-raid-on-dmcrypt.htmlUpdate
Kontrolle der Daten
Testfile anlegen
rock64@rockpro64:/mnt/btrfs$ nano test
Die 2. Platte mounten
rock64@rockpro64:/mnt/btrfs$ sudo mount /dev/mapper/btrfs_pool1 /media
File lesen
nano /media/btrfs/test
Hat alles geklappt?
rock64@rockpro64:/media$ sudo umount /media
Das dient nur der Kontrolle. btrfs kümmert sich da alleine drum, nur um mal zu sehen ob das auch klappt, hab ich das gemacht. Im Normalfall interessiert uns die 2. Platte nicht.
-
Auf der Webseite von Kyle Kneitlinger gibt es eine schöne Grafik, die mir endlich mal richtig geholfen hat das Ganze zu verstehen.
Bildquelle: https://kneit.in/2015/09/17/brtfs-raid-on-dmcrypt.htmlVielleicht nutzt sie dem ein oder anderem von Euch auch.
-
Nachdem wir nun mit btrfs das Raid1 fertig eingerichtet haben, brauchen wir nun "Subvolumes".
"Subvolumes" kann man sich wie Partitionen vorstellen, nur viel flexibler. Dann schauen wir uns das mal in der Praxis an.
Erstellung
In den Pfad wechseln
cd /mnt/btrfs
Dann das Subvolume erstellen.
btrfs subvolume create daten
Das sieht dann so aus.
rock64@rockpro64:/mnt/btrfs$ ls -la total 20 drwxr-xr-x 1 rock64 rock64 10 Sep 5 21:04 . drwxr-xr-x 3 root root 4096 Sep 2 10:34 .. drwxrwxr-x 1 rock64 rock64 24 Sep 5 21:04 daten
Snapshot erstellen
btrfs subvolume snapshot daten snapshots/05_09_2018/
In diesem Beispiel würde vom Subvolume daten ein Snapshot erstellt und dieser im Subvolume snapshots/05_09_18 abgelegt.
Jetzt mal kurz zu diesen Snapshots, die machen eine Momentaufnahme des aktuellen Subvolumes. Das ist z.B. bei einem Server sinnvoll, den man umfangreich umkonfigurieren will/muss. Vorher vom funktionierenden System einen Snapshot machen und ran an die Arbeit. Geht was richtig schief, den Snapshot wieder herstellen - fertig!
Ich sehe da jetzt für mein NAS keine sinnvolle Anwendung für. Benutzen tue ich das btrfs eigentlich auch nur, weil @tkaiser meinte ein Raid1 ohne Datenverifizierung ist Müll.
Btrfs Datei-Selbstheilung
Bei traditionellen Speichersystemen können Fehler auftreten, die komplett unbemerkt bleiben und zu fehlerhaften Daten führen, die ohne Warnung oder Fehlermeldung an Anwendungen gesendet werden. Um diese Fehler zu vermeiden, stellt Btrfs Prüfsummen für Daten und Metadaten bereit, erzeugt zwei Kopien der Metadaten und verifiziert dann die Prüfsummen bei jedem Leseprozess. Wenn eine Abweichung (schleichende Datenkorruption) erkannt wurde, kann das Btrfs-Dateisystem mithilfe der Metadatenspiegelung beschädigte Dateien (schleichende Datenkorruption) automatisch erkennen und fehlerhafte Daten mittels der unterstützten RAID-Volumes, einschließlich RAID 1, RAID 5, RAID 6, RAID 10, F1 und SHR, wiederherstellen.
Quelle: https://www.synology.com/de-de/dsm/Btrfs
Da man ein NAS mit Raid1 NICHT als Backup betrachten darf brauchen wir noch was um die Daten zu sichern.
Ein Paar Btrfs Befehle
Subvolume auflisten
rock64@rockpro64:/mnt/btrfs$ sudo btrfs subvolume list /mnt/btrfs/ ID 258 gen 23 top level 5 path daten ID 259 gen 24 top level 5 path snapshots ID 260 gen 25 top level 259 path snapshots/05_09_2018
Snapshot löschen
rock64@rockpro64:/mnt/btrfs$ sudo btrfs subvolume delete snapshots/05_09_2018/ Delete subvolume (no-commit): '/mnt/btrfs/snapshots/05_09_2018'
Subvolume löschen
rock64@rockpro64:/mnt/btrfs$ sudo btrfs subvolume delete snapshots Delete subvolume (no-commit): '/mnt/btrfs/snapshots'
Kurzes Fazit
Ich brauche für das NAS keine Snapshot Funktionalität, so das ich auch kein Subvolume bräuchte. Man kann ja auch so in dem Filesystem die Daten speichern.
Aufpassen, Btrfs ist für mich völliges Neuland Aber ohne probieren, lerne ich nix
Quellen:
https://kneit.in/2015/09/17/brtfs-raid-on-dmcrypt.html
https://wiki.ubuntuusers.de/Befehle_Btrfs-Dateisystem/ -
Mal was sinnvolles
Script in /usr/local/sbin erstellen mit dem Namen crypt.sh
#!/bin/bash ###############################################################################$ # Autor: Frank Mankel # Verschlüsseltes BTRFS Raid1 einbinden! # # Hardware: # ROCKPro64v2.1 # PCIe SATA Karte # 2St. 2,5 Zoll HDD Platten a 2TB # # Software: # bionic-minimal 0.7.9 # Kontakt: xxxxx@gmail.com # ###############################################################################$ #Passwörter abfragen cryptsetup open /dev/sda1 btrfs_pool0 cryptsetup open /dev/sdb1 btrfs_pool1 #Raid1 mounten mount /dev/mapper/btrfs_pool0 /mnt/btrfs
Ausführbar machen
sudo chmod +x /usr/local/sbin/crypt.sh
Nun kann man nach dem Booten das Script aufrufen und das Btrfs Raid1 entsperren und direkt mounten. Da man sowieso die Passwörter eingeben muss, ist ein Autostart überflüssig. Man sitzt ja dann sowieso vor der Kiste
-
Meine dritte HDD soll an USB3 und dient als Backup Medium. Auch diese HDD ist verschlüsselt.
HDD partitionieren
rock64@rockpro64v_2_1:~$ sudo fdisk /dev/sda [sudo] password for rock64: Welcome to fdisk (util-linux 2.31.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): q
Ihr kennt das ja mittlerweile
Cryptsetup
rock64@rockpro64v_2_1:~$ sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sda1 WARNING! ======== This will overwrite data on /dev/sda1 irrevocably. Are you sure? (Type uppercase yes): YES Enter passphrase for /dev/sda1: Verify passphrase:
HDD öffnen
rock64@rockpro64v_2_1:~$ sudo cryptsetup open /dev/sda1 backup Enter passphrase for /dev/sda1:
Filesystem auf der HDD anlegen
rock64@rockpro64v_2_1:~$ sudo mkfs.ext4 /dev/mapper/backup mke2fs 1.44.1 (24-Mar-2018) Creating filesystem with 244189878 4k blocks and 61054976 inodes Filesystem UUID: 064d504b-c199-43da-8594-c3023905afdd Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done
HDD mounten
rock64@rockpro64v_2_1:~$ sudo mount /dev/mapper/backup /media
Besitzer ändern
Jetzt besitzt Root die HDD, ändern auf rock64
rock64@rockpro64v_2_1:/media$ sudo chown -R rock64:rock64 /media
-
Aufpassen!
Die dritte HDD war ja jetzt sda
In unserem Script haben wir vorher sda & sdb benutzt. Das ist jetzt etwas verschoben. Nun sind die beiden HDDs an der SATA Karte sdb & sdc ! Das Script dementsprechend ändern!
#Passwörter abfragen cryptsetup open /dev/sdb1 btrfs_pool0 cryptsetup open /dev/sdc1 btrfs_pool1
-
Nach dem booten crypt.sh ausführen als Root!
Ergebnis
rock64@rockpro64v_2_1:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 992M 0 992M 0% /dev tmpfs 200M 512K 199M 1% /run /dev/mmcblk1p7 29G 1,4G 26G 5% / tmpfs 996M 0 996M 0% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 996M 0 996M 0% /sys/fs/cgroup /dev/mmcblk1p6 112M 4,0K 112M 1% /boot/efi tmpfs 200M 0 200M 0% /run/user/1000 /dev/mapper/backup 916G 77M 870G 1% /mnt/backup /dev/mapper/btrfs_pool0 1,9T 108M 1,9T 1% /mnt/btrfs
crypt.sh
#!/bin/bash ###############################################################################$ # Autor: Frank Mankel # Verschlüsseltes BTRFS Raid1 einbinden! # # Hardware: # ROCKPro64v2.1 # PCIe SATA Karte # 2St. 2,5 Zoll HDD Platten a 2TB # # Software: # bionic-minimal 0.7.9 # Kontakt: frank.mankel@gmail.com # ###############################################################################$ #Passwörter abfragen cryptsetup open /dev/sda1 backup cryptsetup open /dev/sdb1 btrfs_pool0 cryptsetup open /dev/sdc1 btrfs_pool1 #Backup mounten mount /dev/mapper/backup /mnt/backup #Raid1 mounten mount /dev/mapper/btrfs_pool0 /mnt/btrfs
hdparm.conf
#HDDs schlafen legen nach 20 Minuten (240*5=1200Sek.=20Min.) #Raid1 Disk1 /dev/disk/by-id/ata-ST2000LM015-2E8174_ZDZ2MY9W { # mult_sect_io = 16 # write_cache = off # dma = on spindown_time = 10 } #Raid1 Disk2 /dev/disk/by-id/ata-ST2000LM015-2E8174_ZDZ2MZ1W { # mult_sect_io = 16 # write_cache = off # dma = on spindown_time = 10 } #HDDs schlafen legen nach 20 Minuten (240*5=1200Sek.=20Min.) #HDD Backup /dev/disk/by-id/ata-HGST_HTS541010A9E680_JD1028CC043USV { # mult_sect_io = 16 # write_cache = off # dma = on spindown_time = 10 }
-
Das NAS muss natürlich auch schön auf unserem Haupt-PC eingebunden werden. Dafür nutze ich den NFS-Server. Die Ubuntu Anleitung passt und ist sehr gut.
NFS-Server (NAS)
Installation
sudo apt-get install nfs-kernel-server
Konfiguration
sudo nano /etc/exports
Datei exports
# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /mnt/btrfs 192.168.3.213(rw,sync,no_subtree_check,no_root_squash) /mnt/btrfs 192.168.4.213(rw,sync,no_subtree_check,no_root_squash)
Die Verzeichnisse im Netz bekannt machen
sudo exportfs -ra
Danach kann der Rechner 192.168.3.213 auf das NAS zugreifen.
NFS Client (PC)
Installation
sudo apt-get install nfs-common
Mountpunkte anzeigen
showmount -e NFS_SERVER
Ausgabe
frank@frank-MS-7A34:~$ showmount -e 192.168.3.207 Export list for 192.168.3.207: /mnt/btrfs 192.168.4.213,192.168.3.213
In /etc/fstab eintragen
sudo nano /etc/fstab
Datei fstab
Folgende Zeile eintragen
192.168.3.207:/mnt/btrfs /media/NAS_neu nfs rw 0 0
Verzeichnis für den Mountpunkt erzeugen
sudo mkdir /media/NAS_neu
Einbinden
sudo mount -a
Das NAS wird jetzt beim Neustart des PC's automatisch eingebunden.
-
Heute mal den aktuellen Kernel installiert.
sudo apt-get update sudo apt-cache search linux-image sudo apt-get install linux-image-4.4.138-1094-rockchip-ayufan-gf13a8a9a4eee
Danach Neustart. Kernel war ok.
rock64@rockpro64v_2_1:~$ uname -a Linux rockpro64v_2_1 4.4.138-1094-rockchip-ayufan-gf13a8a9a4eee #1 SMP Thu Aug 9 20:29:55 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
Nach dem ersten Neustart bestand mein Raid 1 nur noch aus einer Platte. Ursache aktuell unbekannt - ich werde beobachten Ein Neustart hat das Problem gelöst.
Anmerkung
Für cryptsetup kam heute ein Update !?!?!
-
Mainline 4.18.x testen
Um meine aktuelle Installation nicht zu zerstören , habe ich das eMMC-Modul auf eine SD-Karte kopiert.
sudo dd if=/dev/mmcblk1 of=/dev/mmcblk0 bs=4M
Danach von SD-Karte starten. Danach den Mainline installieren.
wget https://github.com/ayufan-rock64/linux-mainline-kernel/releases/download/4.18.0-rc8-1060-ayufan/linux-headers-4.18.0-rc8-1060-ayufan-g45828c4db727_4.18.0-rc8-1060-ayufan_arm64.deb wget https://github.com/ayufan-rock64/linux-mainline-kernel/releases/download/4.18.0-rc8-1060-ayufan/linux-image-4.18.0-rc8-1060-ayufan-g45828c4db727-dbg_4.18.0-rc8-1060-ayufan_arm64.deb wget https://github.com/ayufan-rock64/linux-mainline-kernel/releases/download/4.18.0-rc8-1060-ayufan/linux-image-4.18.0-rc8-1060-ayufan-g45828c4db727_4.18.0-rc8-1060-ayufan_arm64.deb sudo dpkg -i *.deb
So, danach ist der Mainline installiert. Nach einem Reboot sollte er den Mainline Kernel laden. Seltsamerweise funktioniert das nicht !?!?!?!?! Das Problem ist mir schon mal begegnet. Das passiert in folgender Kombination.
- eMMC-Modul gesteckt
- Jumper eMMC-Modul gesetzt
- SD-Karte gesteckt
Es startet immer der Kernel 4.4.x Erst wenn ich das eMMC-Modul und den Jumper entferne bootet die SD-Karte mit dem neu installierten Mainline-Kernel. Der Grund dafür will sich mir im Moment nicht erschließen.
Gut, aber erst mal egal. Wollte sowieso nur mal eben meine NAS-Installation mit dem Mainline-Kernel testen.
rock64@rockpro64v_2_1:~$ uname -a Linux rockpro64v_2_1 4.18.0-rc8-1060-ayufan-g45828c4db727 #1 SMP PREEMPT Thu Aug 9 19:41:21 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
-
Nach einigen Wochen ist mir folgendes aufgefallen.
[202489.629073] BTRFS info (device dm-1): read error corrected: ino 0 off 226903093248 (dev /dev/mapper/btrfs_pool1 sector 443170104) [203929.223855] BTRFS error (device dm-1): parent transid verify failed on 226742059008 wanted 1461 found 937 [203929.240824] BTRFS info (device dm-1): read error corrected: ino 0 off 226742059008 (dev /dev/mapper/btrfs_pool1 sector 442855584) [203929.241124] BTRFS info (device dm-1): read error corrected: ino 0 off 226742063104 (dev /dev/mapper/btrfs_pool1 sector 442855592) [203929.241391] BTRFS info (device dm-1): read error corrected: ino 0 off 226742067200 (dev /dev/mapper/btrfs_pool1 sector 442855600) [203929.241630] BTRFS info (device dm-1): read error corrected: ino 0 off 226742071296 (dev /dev/mapper/btrfs_pool1 sector 442855608) [203930.278570] BTRFS error (device dm-1): parent transid verify failed on 226761359360 wanted 1461 found 942 [203930.289002] BTRFS info (device dm-1): read error corrected: ino 0 off 226761359360 (dev /dev/mapper/btrfs_pool1 sector 442893280) [203930.289286] BTRFS info (device dm-1): read error corrected: ino 0 off 226761363456 (dev /dev/mapper/btrfs_pool1 sector 442893288) [203930.289551] BTRFS info (device dm-1): read error corrected: ino 0 off 226761367552 (dev /dev/mapper/btrfs_pool1 sector 442893296) [203930.289802] BTRFS info (device dm-1): read error corrected: ino 0 off 226761371648 (dev /dev/mapper/btrfs_pool1 sector 442893304) [203931.145319] BTRFS error (device dm-1): parent transid verify failed on 226895413248 wanted 1465 found 877 [203931.161445] BTRFS info (device dm-1): read error corrected: ino 0 off 226895413248 (dev /dev/mapper/btrfs_pool1 sector 443155104) [203931.161823] BTRFS info (device dm-1): read error corrected: ino 0 off 226895417344 (dev /dev/mapper/btrfs_pool1 sector 443155112) [203950.975864] BTRFS error (device dm-1): parent transid verify failed on 227301457920 wanted 1405 found 901 [203950.987880] repair_io_failure: 2 callbacks suppressed [203950.987891] BTRFS info (device dm-1): read error corrected: ino 0 off 227301457920 (dev /dev/mapper/btrfs_pool1 sector 443948160) [203950.988165] BTRFS info (device dm-1): read error corrected: ino 0 off 227301462016 (dev /dev/mapper/btrfs_pool1 sector 443948168) [203950.988611] BTRFS info (device dm-1): read error corrected: ino 0 off 227301466112 (dev /dev/mapper/btrfs_pool1 sector 443948176) [203950.988863] BTRFS info (device dm-1): read error corrected: ino 0 off 227301470208 (dev /dev/mapper/btrfs_pool1 sector 443948184) [203950.989766] BTRFS error (device dm-1): parent transid verify failed on 227302096896 wanted 1406 found 901 [203950.995493] BTRFS info (device dm-1): read error corrected: ino 0 off 227302096896 (dev /dev/mapper/btrfs_pool1 sector 443949408) [203950.995909] BTRFS info (device dm-1): read error corrected: ino 0 off 227302100992 (dev /dev/mapper/btrfs_pool1 sector 443949416) [203950.996144] BTRFS info (device dm-1): read error corrected: ino 0 off 227302105088 (dev /dev/mapper/btrfs_pool1 sector 443949424) [203950.996368] BTRFS info (device dm-1): read error corrected: ino 0 off 227302109184 (dev /dev/mapper/btrfs_pool1 sector 443949432) [288883.929514] BTRFS error (device dm-1): parent transid verify failed on 226904064000 wanted 1468 found 886 [288883.981621] BTRFS info (device dm-1): read error corrected: ino 0 off 226904064000 (dev /dev/mapper/btrfs_pool1 sector 443172000) [288883.981948] BTRFS info (device dm-1): read error corrected: ino 0 off 226904068096 (dev /dev/mapper/btrfs_pool1 sector 443172008) [288883.982198] BTRFS info (device dm-1): read error corrected: ino 0 off 226904072192 (dev /dev/mapper/btrfs_pool1 sector 443172016) [288883.982422] BTRFS info (device dm-1): read error corrected: ino 0 off 226904076288 (dev /dev/mapper/btrfs_pool1 sector 443172024) [290355.228294] BTRFS error (device dm-1): parent transid verify failed on 47972352 wanted 1435 found 465 [290355.253785] BTRFS info (device dm-1): read error corrected: ino 0 off 47972352 (dev /dev/mapper/btrfs_pool1 sector 93696) [290355.254197] BTRFS info (device dm-1): read error corrected: ino 0 off 47976448 (dev /dev/mapper/btrfs_pool1 sector 93704) [290355.254491] BTRFS info (device dm-1): read error corrected: ino 0 off 47980544 (dev /dev/mapper/btrfs_pool1 sector 93712) [290355.254779] BTRFS info (device dm-1): read error corrected: ino 0 off 47984640 (dev /dev/mapper/btrfs_pool1 sector 93720) [290355.724110] BTRFS error (device dm-1): parent transid verify failed on 47988736 wanted 1435 found 465 [290355.726153] BTRFS info (device dm-1): read error corrected: ino 0 off 47988736 (dev /dev/mapper/btrfs_pool1 sector 93728) [290355.726481] BTRFS info (device dm-1): read error corrected: ino 0 off 47992832 (dev /dev/mapper/btrfs_pool1 sector 93736) [290355.726805] BTRFS info (device dm-1): read error corrected: ino 0 off 47996928 (dev /dev/mapper/btrfs_pool1 sector 93744) [290355.727127] BTRFS info (device dm-1): read error corrected: ino 0 off 48001024 (dev /dev/mapper/btrfs_pool1 sector 93752) [290357.696648] BTRFS error (device dm-1): parent transid verify failed on 55083008 wanted 1435 found 466 [290357.712434] BTRFS info (device dm-1): read error corrected: ino 0 off 55083008 (dev /dev/mapper/btrfs_pool1 sector 107584) [290357.712853] BTRFS info (device dm-1): read error corrected: ino 0 off 55087104 (dev /dev/mapper/btrfs_pool1 sector 107592) [290357.715877] BTRFS error (device dm-1): parent transid verify failed on 55689216 wanted 1435 found 466 [290357.726721] BTRFS error (device dm-1): parent transid verify failed on 105234432 wanted 1435 found 902 [290357.752836] BTRFS error (device dm-1): parent transid verify failed on 105283584 wanted 1435 found 902 [290357.756527] BTRFS error (device dm-1): parent transid verify failed on 105316352 wanted 1435 found 902 [290358.732055] BTRFS error (device dm-1): parent transid verify failed on 105332736 wanted 1435 found 902 [290358.738171] BTRFS error (device dm-1): parent transid verify failed on 105349120 wanted 1435 found 902 [290368.774814] BTRFS error (device dm-1): parent transid verify failed on 283131904 wanted 1435 found 911 [290368.790327] repair_io_failure: 26 callbacks suppressed [290368.790339] BTRFS info (device dm-1): read error corrected: ino 0 off 283131904 (dev /dev/mapper/btrfs_pool1 sector 552992) [290368.790683] BTRFS info (device dm-1): read error corrected: ino 0 off 283136000 (dev /dev/mapper/btrfs_pool1 sector 553000) [290368.790983] BTRFS info (device dm-1): read error corrected: ino 0 off 283140096 (dev /dev/mapper/btrfs_pool1 sector 553008) [290368.791265] BTRFS info (device dm-1): read error corrected: ino 0 off 283144192 (dev /dev/mapper/btrfs_pool1 sector 553016) [290374.976655] BTRFS error (device dm-1): parent transid verify failed on 283148288 wanted 1435 found 911 [290374.982507] BTRFS info (device dm-1): read error corrected: ino 0 off 283148288 (dev /dev/mapper/btrfs_pool1 sector 553024) [290374.982832] BTRFS info (device dm-1): read error corrected: ino 0 off 283152384 (dev /dev/mapper/btrfs_pool1 sector 553032) [290374.983131] BTRFS info (device dm-1): read error corrected: ino 0 off 283156480 (dev /dev/mapper/btrfs_pool1 sector 553040) [290374.983419] BTRFS info (device dm-1): read error corrected: ino 0 off 283160576 (dev /dev/mapper/btrfs_pool1 sector 553048) [290394.470089] BTRFS error (device dm-1): parent transid verify failed on 290963456 wanted 1435 found 911 [290394.519792] BTRFS info (device dm-1): read error corrected: ino 0 off 290963456 (dev /dev/mapper/btrfs_pool1 sector 568288) [290394.520183] BTRFS info (device dm-1): read error corrected: ino 0 off 290967552 (dev /dev/mapper/btrfs_pool1 sector 568296) [290394.520522] BTRFS info (device dm-1): read error corrected: ino 0 off 290971648 (dev /dev/mapper/btrfs_pool1 sector 568304) [290394.520851] BTRFS info (device dm-1): read error corrected: ino 0 off 290975744 (dev /dev/mapper/btrfs_pool1 sector 568312) [290394.535021] BTRFS error (device dm-1): parent transid verify failed on 314458112 wanted 1435 found 911 [290394.768369] BTRFS info (device dm-1): read error corrected: ino 0 off 314458112 (dev /dev/mapper/btrfs_pool1 sector 614176) [290394.768892] BTRFS info (device dm-1): read error corrected: ino 0 off 314462208 (dev /dev/mapper/btrfs_pool1 sector 614184) [290394.769218] BTRFS info (device dm-1): read error corrected: ino 0 off 314466304 (dev /dev/mapper/btrfs_pool1 sector 614192) [290394.769529] BTRFS info (device dm-1): read error corrected: ino 0 off 314470400 (dev /dev/mapper/btrfs_pool1 sector 614200) [375198.754150] BTRFS error (device dm-1): parent transid verify failed on 353206272 wanted 1435 found 912
Ich habe keine vernünftige Lösung dafür im Netz gefunden, so das ich dieses RAID heute auflöse.
-
Da btrfs bei mir ja nicht so der Bringer war, Fehler im Image vom Kamil?, Fehler in btrfs? Ich weiß es nicht, also weg damit! Da ich das NAS noch richtig produktiv genutzt hatte, waren die Daten schnell gesichert. Danach das NAS neugestartet, nun sind die beiden Platten nicht mehr gemountet und wir können damit arbeiten.
ACHTUNG! Ich bitte wie immer darum, das Gehirn ab hier einzuschalten! Sonst droht Datenverlust!
Aus Sicherheitsgründen gebe ich hier die Laufwerke so an = sdX1
Das X bitte entsprechend austauschen!
Die beiden Platten mit
sudo fdisk /dev/sdX
neu einrichten. Alte Partition weg, neu einrichten usw. Im Detail gehe ich hier jetzt nicht drauf ein. Ich gehe davon aus, das das bekannt ist.
Der Plan
raid_pool0 = sdX1 = /dev/mapper/raid_pool0
raid_pool1 = sdX1 = /dev/mapper/raid_pool1Verschlüsseln
sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sdX1 sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sdX1
Platten entschlüsseln
sudo cryptsetup open /dev/sdX1 raid_pool0 sudo cryptsetup open /dev/sdX1 raid_pool1
RAID1 anlegen
sudo mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/mapper/raid_pool0 /dev/mapper/raid_pool1 sudo mkfs.ext4 /dev/md0
Script zum Entschlüsseln und Mounten crypt.sh
#!/bin/bash ###############################################################################$ # Autor: Frank Mankel # Verschlüsseltes Raid1 einbinden! # # Hardware: # ROCKPro64v2.1 # PCIe SATA Karte # 2St. 2,5 Zoll HDD Platten a 2TB # # Software: # bionic-minimal 0.7.9 # Kontakt: frank.mankel@gmail.com # ###############################################################################$ #Passwort abfragen echo "Passwort eingeben!" read -s password echo "Bitte warten......" #Passwörter abfragen echo -n $password | cryptsetup open /dev/sdX1 raid_pool0 -d - echo -n $password | cryptsetup open /dev/sdX1 raid_pool1 -d - #Raid1 mounten mount /dev/md0 /mnt/raid echo "Laufwerke erfolgreich gemountet!"
Bis jetzt sieht das Raid ok aus, ich werde das die nächsten Tage mal ein wenig im Auge behalten.
[ 82.430293] device-mapper: uevent: version 1.0.3 [ 82.430430] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com [ 108.196397] md/raid1:md0: not clean -- starting background reconstruction [ 108.196401] md/raid1:md0: active with 2 out of 2 mirrors [ 108.240395] md0: detected capacity change from 0 to 2000260497408 [ 110.076860] md: resync of RAID array md0 [ 110.385099] EXT4-fs (md0): recovery complete [ 110.431715] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null) [57744.301662] md: md0: resync done.
-
-
-
-
-
-
-
ROCKPro64 - Der Bootvorgang
Verschoben Hardware -
[HOWTO] ROCKPro64 - Boot
Verschoben Hardware