Разблокировать не корневой раздел файловой системы LUKS при загрузке

Решение состоит в ограничении портов, которые vsftpd назначает для соединений данных стиля PASV в файле конфигурации. В файле vsftpd.conf добавьте две строки:

pasv _ min _ port = 12000

pasv _ max _ port = 12100

Затем необходимо открыть эти порты в Google Developers Console в разделе Сеть, правила брандмауэра (см. рисунок).

enter image description here

Можно также добавить следующую строку, чтобы переопределить IP-адрес, объявленный vsftpd в ответ на команду PASV:

pasv _ address = xxx.xxx.xxx.xxx

Внешний IP-адрес экземпляра виртуальной машины.

Я также использую порт FTP 211 вместо 21 по соображениям безопасности:

listen _ port = 211

-121--119471-

В конце концов я заставил его работать с mplayer. Оказывается, у mplayer были недопустимые значения оттенка и насыщенности. Не знаю почему, но я видел, как другие люди жаловались на это тоже. Это команда, которую я в итоге использовал:

mplayer -really-quiet -tv driver=v4l2:height=320:width=240:quality=1:hue=35:saturation=-80:brightness=99:contrast=-88:fps=8:device=/dev/video0 tv:// -vo jpeg -saturation -50 -contrast -3 &

Она сбрасывает jpegs в папку на 8fps, что достаточно для моих нужд.

Наряду с этим сценарием я запускаю сценарий, который удаляет из папки изображения старше 8 секунд. Я использовал 8 секунд, чтобы поддерживать низкое использование ЦП, так как это ценный ресурс на pi:

cd /home/pi/webcam_frames

while true; do
find . -not -newermt '-8 seconds' -delete
sleep 8;
done

И сценарий, который создает symlink к последнему изображению 10 раз в секунду.

cd /home/pi/public

sleep 2
rm -rf latest.jpg

while true; do
ln -s -f /home/pi/webcam_frames/`ls -rt /home/pi/webcam_frames | tail -n1` latest.jpg
sleep 0.1
done

Эта symlink находится в общедоступном каталоге, который доступен из браузера через nodejs:

var express = require('express'),
app = express(),
port = 8888;

app.use(express.static('/home/pi/public'));
app.listen(port);

У меня есть простая html + js страница, которая несколько раз в секунду извлекает из nodejs символьное изображение, и, таким образом, у меня есть 5-8fps видео, которое работает на каждом устройстве, которое может обрабатывать javascript.

Это уродливое решение с уродливым результатом, но это именно то, что мне нужно.

-121--243568-

ext4 - файловая система ведения журнала, и одной из основных целей ведения журнала является выживание нечистых отключений без повреждения, и, таким образом, не требует длительного fsck.

Короче говоря, файловая система ведения журнала, такая как ext3/4, записывает метаданные (по крайней мере), изменяет дважды . Сначала она записывает их в «журнал». Затем, когда это на диске, он записывает в фактические метаданные файловой системы. (Запись в журнал происходит гораздо быстрее, поскольку журнал является последовательным и не требует множества поисков. По крайней мере, на магнитных дисках - поиск штраф значительно снижен на SSD.)

Несколько дополнительных секунд, скорее всего, повтор журнала: в основном, если файловая система не демонтирована чисто, следующее монтирование или fsck будет читать журнал и применять любые изменения, которые еще не находятся в основной файловой системе.

Короче говоря, похоже на ожидаемое поведение.

1
02.04.2018, 23:36
2 ответа

В настоящее время я настраиваю такую ​​систему, но в Debian Stretch. И я провожу свои эксперименты на виртуальной машине, прежде чем на самом деле настрою сам физический компьютер. У меня очень похожая установка, работающая на виртуальной машине.

2 диска в зеркале zpool для /, но не для /boot. /boot находится на md0. zpool находится поверх LUKS. Использование ЭФИ.

root@zstaging:~# cat /proc/1/comm
systemd

root@zstaging:~# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda               8:0    0   20G  0 disk
+-sda1            8:1    0  256M  0 part
¦ +-md0           9:0    0  256M  0 raid1 /boot
+-sda2            8:2    0  256M  0 part  /boot/efi
+-sda3            8:3    0 19.5G  0 part
¦ +-disk0_crypt 253:0    0 19.5G  0 crypt
+-sda9            8:9    0    9M  0 part
sdb               8:16   0   20G  0 disk
+-sdb1            8:17   0  256M  0 part
¦ +-md0           9:0    0  256M  0 raid1 /boot
+-sdb2            8:18   0  256M  0 part
+-sdb3            8:19   0 19.5G  0 part
¦ +-disk1_crypt 253:1    0 19.5G  0 crypt
+-sdb9            8:25   0    9M  0 part
sdc               8:32   0   20G  0 disk
sr0              11:0    1  1.8G  0 rom

root@zstaging:~# zpool status
  pool: rpool
 state: ONLINE
  scan: none requested
config:

        NAME             STATE     READ WRITE CKSUM
        rpool            ONLINE       0     0     0
          mirror-0       ONLINE       0     0     0
            disk0_crypt  ONLINE       0     0     0
            disk1_crypt  ONLINE       0     0     0

errors: No known data errors

Соответствующие файлы и настройки:

root@zstaging:~# cat /etc/fstab
UUID=648bfa4b-1b5f-480a-bb26-b3abffb4a6de /boot auto defaults 0 0
PARTUUID=1673f966-173b-4128-84d5-4e8d5810efef /boot/efi vfat defaults 0 1

root@zstaging:~# cat /etc/crypttab
disk0_crypt UUID=26194846-ba49-4e53-ab0b-857b0dad2021 none luks
disk1_crypt UUID=ef44b66a-8706-4be2-bd12-a30d40de9669 none luks

root@zstaging:~# cat /etc/initramfs-tools/conf.d/cryptroot
target=disk0_crypt,source=UUID=26194846-ba49-4e53-ab0b-857b0dad2021,key=none,rootdev
target=disk1_crypt,source=UUID=ef44b66a-8706-4be2-bd12-a30d40de9669,key=none,rootdev

set CRYPTSETUP=y in /etc/cryptsetup-initramfs/conf-hook

# vi /etc/default/grub
replace GRUB_CMDLINE_LINUX="" with GRUB_CMDLINE_LINUX="boot=zfs"
Remove quiet from: GRUB_CMDLINE_LINUX_DEFAULT
Uncomment: GRUB_TERMINAL=console

# update-initramfs -u -k all
# update-grub
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --no-floppy

Все отлично работает. Получите запрос на разблокировку двух дисков по одному, и вперед. Нет необходимости перечислять какие-либо элементы zfs в файле /etc/fstab. Да, initramfs и т. д. БУДУТ жаловаться на /etc/fstab, но пока все работает нормально

Я даже могу удаленно разблокировать его

# apt-get install dropbear-initramfs busybox
# vi /etc/dropbear-initramfs/authorized_keys
Paste my SSH pubkey

# chmod 400 /etc/dropbear-initramfs/authorized_keys
# update-initramfs -u

in another machine that has my SSH keys, add a custom section in ~/.ssh/config:
  Host zstaging_unlock
  HostName <ip_of_zstaging>
  User root
  HostKeyAlias zstaging_unlock

to remote unlock zstaging, from remote machine:
$ ssh zstaging_unlock
and follow prompts

ХТХ

0
28.01.2020, 00:37
  1. разблокировать люксы в Ubuntu
  2. добавить ",initramfs" в конец файла /etc/crypttab
root@a:~# cat /etc/crypttab
vda6_crypt UUID=9f420e32-0821-4cc8-a87e-59db96a12df0 none luks,discard 
vdb_crypt  UUID=8632fd8d-46ca-4c82-931c-6f6e04066465 none luks,discard,initramfs
  1. обновление -initramfs -u
  2. проверить файл /cryptroot/crypttab
root@a:~# unmkinitramfs /boot/initrd.img-5.8.0-50-generic /tmp/initramfs
root@a:~# cat /tmp/initramfs/main/cryptroot/crypttab

vda6_crypt UUID=9f420e32-0821-4cc8-a87e-59db96a12df0 none luks,discard
vdb_crypt UUID=8632fd8d-46ca-4c82-931c-6f6e04066465 none luks,discard,initramfs
1
16.04.2021, 23:51

Теги

Похожие вопросы