3

ОС: Mint 12, 64 бит (ядро Linux: 3.5.0-17)
версия truecrypt: 7.1a

Я использую truecrypt в скрипте автоматизации. И я хочу создать том с файловой системой Ext4. Но похоже, что опция --filesystem не может этого сделать.

Когда я --filesystem=ext4 во время создания, я не могу смонтировать том. Он говорит:"Вы должны указать файловую систему", и когда я передаю команду --filesystem , я получаю сообщение об ошибке. В syslog сказано:

EXT4-fs (dm-2): VFS: Can't find ext4 filesystem

Но когда я не передаю опцию --filesystem во время создания, она запрашивает у меня файловую систему, и я могу выбрать Linux Ext4 и все идет хорошо.

Я знаю, что могу передать --filesystem=none а затем отформатировать том позже, но это не то, что я хочу. (Поскольку скрипт не знает, какое устройство он должен отформатировать? Там, может быть, установлены другие тома truecrypt.)

1 ответ1

2

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

Я пришел к этому моменту после нескольких попыток использовать как Tomb, так и Truecrypt, прежде чем наконец переключиться на разветвленную версию Truecrypt под названием tc-play.

Почему я взял под залог эти две другие утилиты? Могила, у меня были проблемы с надежностью. Периодически после операции изменения размера могилы инструмент отказывался принимать парольную фразу, которую я связал с моими ключами могилы. Я мог бы исправить это в конце концов, но кто хочет отлаживать ksh-скрипты весь день? :) Мне очень нравится проект Tomb и надеюсь, что он продолжит быть успешным в будущем.

Собственно трюкрипт? Мне не нравилось доверять предоставляемым двоичным файлам, тем более что в Интернете было много сообщений о людях, которые не могут воспроизвести одни и те же двоичные файлы с одним и тем же источником. Я рад, что проводится аудит этого кода, финансируемый государством. Я также не хотел доверять своей собственной компиляции из исходного кода. Я строю здесь систему резервного копирования и не хочу рисковать, что через 5 лет мне по какой-то причине нужно будет перекомпилировать и сжечь целые выходные, просто чтобы собрать ее с обновленными компиляторами дня ,

Что бы это ни стоило, tc-play включен в репозиторий apt на Ubuntu 13 (и, вероятно, в большинстве других дистрибутивов / версий). В этом коде предполагается, что команды выполняются как обычная учетная запись пользователя, а команды select занесены в белый список через sudoers.

Последнее замечание: я хотел, чтобы все это было доступно для сценариев, несмотря на то, что tc-play требует интерактивного ввода с клавиатуры для сбора парольных фраз. Я знаю, что встраивание паролей в скрипты - это плохая форма, но моя система в любом случае зависит от того, заблокирован ли мой сервер резервного копирования. Если кто-то может получить пароль в скрипте, у меня есть большие проблемы, чтобы беспокоиться.

Так что со всей этой преамбулой здесь мои команды. Не стесняйтесь копировать / вставлять и приправлять по вкусу. Обратная связь приветствуется и приветствуется, если вы заметили какие-либо вопросы или у вас есть предложения:

export ARCHIVE=foo.tc
export SIZE_M=20
export PASSWORDBASE=superdupertopsecret
export CLOUD_DIR=/mnt/cloud/r3cgm/

# create archive
dd if=/dev/zero of=$CLOUD_DIR$ARCHIVE bs=1 count=0 seek=${SIZE_M}M

# find free loopback device
LOOPBACK_DEV=$(sudo losetup -f)

# associate loopback device with archive
sudo losetup $LOOPBACK_DEV $CLOUD_DIR$ARCHIVE

# to enable Expect debugging, add this:
# exp_internal 1

# encrypt loopback device
expect -c "spawn sudo tcplay -c -d $LOOPBACK_DEV -a whirlpool -b AES-256-XTS
set timeout 2
expect Passphrase
send $PASSWORDBASE$ARCHIVE\r
expect Repeat
send $PASSWORDBASE$ARCHIVE\r
expect proceed
send y\r
interact
"

# map loopback device with file container
# DEBUG: sometimes this needs to be run twice / fails the first time, why?
expect -c "spawn sudo tcplay -m $ARCHIVE -d $LOOPBACK_DEV
set timeout 1
expect Passphrase
send $PASSWORDBASE$ARCHIVE\r
expect eof
"

# format archive with ext4
sudo mkfs.ext4 /dev/mapper/$ARCHIVE

[[ -d "/mnt/$ARCHIVE" ]] || sudo mkdir /mnt/$ARCHIVE

# mount archive
sudo mount /dev/mapper/$ARCHIVE /mnt/$ARCHIVE


# UNDO


# unmount archive
sudo umount /mnt/$ARCHIVE

# remove volume
sudo dmsetup remove $ARCHIVE

# delete loopback device
sudo losetup -d $LOOPBACK_DEV

# remove the archive
# rm $CLOUD_DIR$ARCHIVE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .