Неверный размер раздела EXT4 в зашифрованном разделе luks

for f in./*; do ls./* | wc -l $f; done

Это устанавливает fдля всех имен файлов в текущем каталоге(./*)по очереди. Для каждого из них он снова запускает lsсо всеми именами файлов в текущем каталоге, направляя вывод в wc -l $f. Теперь wc -lподсчитывает строки в файлах, переданных в качестве аргументов, и смотрит на стандартный ввод только в том случае, если их нет. Таким образом, канал здесь игнорируется wcи пытается прочитать любой файл, названный в f, терпя неудачу, если это каталог.

Я подозреваю, что вы хотите что-то вроде этого

for f in./* ; do ls "$f" | wc -l ; done

Который запустит lsв каталоге, указанном в f, а затем подсчитает строки в нем. Но lsможет игнорировать файлы, имена которых начинаются с точки(ls -Aтакже перечисляет их, пропуская .и ..),и глобус также может соответствовать обычным файлам (, если они есть в этом основном каталоге ).

Но вам вообще не нужны lsили wc. OS X должен иметь Bash, где это должно работать:

shopt -s dotglob       # '*' matches files with a leading dot, too
for f in./*/ ; do     # trailing slash only picks directories
    set -- "$f"/*      # fill the positional params with the filenames in the dir 
    echo "$f $#"       # print the directory name and number of params/files
done
1
07.08.2019, 17:48
1 ответ

Чтобы зашифрованный раздел монтировался автоматически, сначала необходимо /etc/crypttabправильно настроить его. В вашем случае это означает такую ​​строку:

home /dev/sda3 none luks

(Здесь я предполагаю, что вы использовали LUKS; если вы использовали другой режим cryptsetup, два последних параметра в строке могут быть другими.)

Это должно заставить систему запрашивать кодовую фразу шифрования во время загрузки, чтобы разблокировать зашифрованный том и создать /dev/mapper/homeустройство для доступа к нему через уровень шифрования. Прежде чем продолжить, загрузитесь один раз, чтобы убедиться, что это действительно работает.

Затем вам понадобится строка в /etc/fstabдля его монтирования:

/dev/mapper/home /home ext4 defaults 0 2

Как в /etc/crypttab, так и в /etc/fstabу вас будет возможность использовать синтаксис UUID=вместо соответствующего имени устройства. Обратите внимание, что UUID файловой системы /home (, просматриваемый через /dev/mapper/homeдля монтирования ), крайне маловероятен, чтобы совпадать с UUID зашифрованного контейнера /dev/sda3.

0
28.01.2020, 00:04

Теги

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