Как стать автором
Обновить

Организация данных на usb-flash

Время на прочтение 2 мин
Количество просмотров 6.4K
Многие, для организации данных на usb-flash, используют программы-лаунчеры. Мне ни один из них не понравился и я хочу рассказать как сделал собственный, на основе bat-файлов и Launchy

Как я рассказывал когда-то очень давно, все данные на флешке у меня хранятся в шифрованном контейнере TrueCrypt, поэтому флешка имеет следующую структуру:
/secure
    /truecrypt/ (здесь лежит сама программа TrueCrypt)
    /truecrypt.vol (контейнер)
    /mount.bat (batch-скрипт, монтирующий контейнер всегда как диск S: что упрощает конфигурацию)
    /umount.bat (batch-скрипт, размонтирующий контейнер)
Все скрипты, которые указаны в посте, выложены в публичный доступ (см. в конце)

Пункт №1. Настройка Launchy
Устанавливаем Launchy, настраиваем под себя, включаем в настройках Portable Mode и копируем ее на защищенный раздел.
Совет: старайтесь использовать пути не зависящие от компьютера или текущего пользователя, например %USERPROFILE%\Start Menu для программ в меню «Пуск»

Пункт №2. Создание ярлыков portable программ
Я разместил все .lnk файлы на незащищенном разделе в той же папке /secure. Добавляем папку /secure в каталог Launchy. Тут я встретился с небольшой проблемой, которую до сих пор для себя не решил — в данном случае никакую переменную окружения использовать не получится, а флешка может подключиться на разные диски на разных компьютерах. Поэтому я добавил в Launchy папки D:\secure, E:\secure, F:\secure и G:\secure — пока хватает :)

Пункт №3. Автозапуск Launchy
Файл autorun.inf запускает mount.bat — скрипт, монтирующий TrueCrypt контейнер. Туда же я добавил запуск Launchy.
Чтобы закрывать Launchy перед размонтированием, в скрипт umount.bat была добавлена инструкция taskkill /f /IM launchy.exe, которая убивает Launchy, чтобы он не мешал размонтированию. Грубо, но работает.
Самое радостное, что скрипт umount.bat можно запустить из того же Launchy.

Пункт №4. Проверка на возможность размонтирования
Это только для удобства. Программа Unlocker умеет показывать процессы, которые используют диск. Добавим batch файл с инструкцией «unlocker.exe S:» туда же и скомпилируем его в .exe для красоты. Теперь перед вызовом umount, который Launchy в любом случае убьет, а контейнер может не размонтировать, можно выполнить unlocker, который покажет блокирующие процессы (Launchy в любом случае будет среди них, но нас это не волнует).
Конечно, хотелось бы перед размонтированием проверить, есть ли блокирующие процессы и если есть, то запустить эту утилиту, но batch-скрипты на такие сложности не способны (во всяком случае, у меня не получилось)

Пункт №5. Запуск процедуры автоматического извлечения флешки после размонтирования
Создаем еще один batch-скрипт eject.bat с содержимым
call umount.bat
\secure\unlocker\eject.exe /REMOVETHIS /SHOWEJECT
который запустит утилиту USB Disk Ejector после размонтирования контейнера.

Результат: вставляем флешку, в выскочившем окне автозапуска выбираем «mount».
После ввода пароля для защищенного раздела Launchy готов к работе и может запускать все ваши portable программы.
После окончания работы нажимаем Alt-Space, пишем eject — и можно вытягивать флешку (или umount чтобы только отмонтировать)

Мои скрипты и необходимые утилиты выложены здесь. Рад вопросам и предложениям :)
Теги:
Хабы:
+26
Комментарии 29
Комментарии Комментарии 29

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн