Не удается загрузить Arch Linux после установки с шифрованием всей системы (BIOS) dm-crypt

Многие машины не имеют прямого доступа к Интернету. Они стоят за сетевым устройством, которое выполняет преобразование сетевых адресов (NAT) : компьютер имеет IP-адрес, действительный только во внутренней сети. Когда компьютер устанавливает соединение с внешним сервером, устройство NAT ретранслирует соединение, так что сервер видит соединение, исходящее от устройства NAT.

Это делает невозможным установление входящих соединений с внутренней машиной, поскольку соединения извне могут достигать только устройства NAT. Если устройство NAT не сконфигурировано для ретрансляции входящих соединений, что редко случается (на какой из многих внутренних машин оно будет ретрансляцию каждого соединения?), входящие соединения невозможны.

Если локальная машина находится за NAT, можно устанавливать только исходящие соединения. Если требуется скопировать файл, откройте другой терминал локально и запустите scp , sftp или sshfs для передачи файлов. Чтобы ускорить установление последующих соединений, можно настроить SSH для подключения к существующему защищенному каналу .

Если вам это часто требуется, вы можете построить обратный SSH туннель . Это компромисс: более длительная настройка, но удобство выигрыша, как только он в наборе.

-121--108269-

Невозможно вычесть две даты, написанные в формате YYYYMMDD. Например, 20150907 - 20140907 , очевидно, дает 10000 вместо 365.

20150907 - 20150907 действительно дает 0 - это действительный способ проверки равенства, за исключением того, что можно просто проверить равенство непосредственно вместо вычисления вычитания. Если вы получаете -20150907 , это потому, что код не тот, что вы показали, и v _ sysdate содержит дополнительные символы (кроме пробелов и цифр).

Разумным способом манипулирования датами является их преобразование в простой числовой формат: количество единиц времени с момента фиксированного начала ( эпоха ). В Unix world стандартная единица измерения - секунды (как в СИ), а эпоха - 1970-01-01.

Утилиты GNU, такие как date и stat , печатают даты в секундах после эпохи с форматом % s . Используйте этот формат до тех пор, пока вам не потребуется хорошенько распечатать его. Чтобы передать дату в этом формате, поставьте @ перед числом секунд.

v_date=$(stat -c '%Z' file)
v_sysdate=$(date +%s)
v_date_difference=$((v_sysdate-v_date))
date -d "@$v_date" +'File ctime: %Y%M%D'
date -d "@$v_sysdate" +'Current time: %Y%M%D'
echo "$v_date_difference seconds elapsed"
echo "$((v_date_difference / 86400)) days elapsed"

Обратите внимание, что при этом вычисляется количество дней между двумя значениями. Например, между вчерашним 23:59 и сегодняшним 00:01, это показывает разницу в 0 дней. Если требуется разница между двумя датами, игнорируя время суток, можно использовать ссылочное время в течение дня.

file_midday_time=$(date +%s -d "$(date '+%Y-%m-%d 12:00' -d "@$(stat -c %Z file)")")
current_midday_time=$(date +%s -d "today 12:00")
day_difference=$(((file_midday_time - current_midday_time + 7200) / 86400))

Добавление числа от 3601 до 86399 обеспечивает учет одного дня даже при переходе часов с обычного времени на летнее (этот день длится только 23 часа).

-121--174453-

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

Если в переменной имеется номер дескриптора файла, можно использовать eval для его соединения в фрагмент кода оболочки, который выполняет перенаправление. Чтобы избежать помещения значительной части сценария в eval последовательностей, используйте exec builtin для выполнения перенаправления. Например, если это код с жестко закодированным номером дескриптора файла

( … ) 3>foo

, то этот код можно использовать для перенаправления на дескриптор файла, указанный переменной fd :

( eval "exec $fd>foo"; … )

start Можно использовать только в некоторых оболочках, поддерживающих это расширение.

1
18.02.2018, 05:24
2 ответа

Cree una partición al principio de su unidad de disco duro, su tamaño debe estar entre 600 MB y 1 GB, y en la configuración de Linux marque esa partición como partición /boot . No debe cifrar la partición de arranque, ya que no se escribirán en ella datos potencialmente confidenciales.

Si desea borrar todo el disco duro antes de -particionar, le sugiero que use fdisk -l | más para enumerar todas sus unidades de disco duro y todas las particiones en ellas, luego, cuando encuentre la unidad, haga dd if=/dev/urandom of=/dev/sd (X)donde X es la letra de su HDD.

Luego cree otras particiones que se cifrarán :1./SWAP, 2./ROOT y 3. /HOME (opcional ).

1
27.01.2020, 23:23

GRUB не (в настоящее время )не поддерживает LUKS2, поэтому /boot не может быть зашифрован LUKS2.

cryptsetup (начиная с версии 2.1.0 )по умолчанию создает LUKS2, если иное не указано упаковщиком дистрибутива. Так что в настоящее время ArchLinux по умолчанию создает контейнеры LUKS2.

https://gitlab.com/cryptsetup/cryptsetup/blob/master/docs/v2.1.0-ReleaseNotes:

Cryptsetup 2.1 version uses a new on-disk LUKS2 format as the default LUKS format and increases default LUKS2 header size.

The legacy LUKS (referenced as LUKS1) will be fully supported forever as well as a traditional and fully backward compatible format.

When upgrading a stable distribution, please use configure option --with-default-luks-format=LUKS1 to maintain backward compatibility.

Вы можете проверить, используется ли LUKS2 по умолчанию для вашей разновидности cryptsetup:

$ cryptsetup --help
[...]
Default compiled-in metadata format is LUKS2 (for luksFormat action).

Default PBKDF for LUKS2: argon2i
    Iteration time: 2000, Memory required: 1048576kB, Parallel threads: 4

Как правило, нет веских причин избегать LUKS2, если вы знаете о предостережениях (, таких как совместимость с GRUB или чрезмерное использование ОЗУ на этапе luksOpen ).

Если по какой-либо причине вы хотите использовать LUKS1, просто укажите его:

# cryptsetup luksFormat --type luks1 /dev/sdx9
2
27.01.2020, 23:23

Теги

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