Софт

индекс
91,16

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

Многие, для организации данных на 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
9 апреля 2009, 09:56
69

комментарии (29)

+3
marazmus #
Статья шикарная. Способ клевый. Автору огромное спасибо. Единственное, что убило — какой-то дурацкий обменник, на котором нужно полчаса искать кнопку «Скачать»…
+4
eschava #
извиняюсь, никогда таким не занимался. выложил туда, что первое предложил гугл по запросу «upload file»
+3
marazmus #
Не стоит извинений, это просто брюзжание :) Повторюсь еще раз, спасибо за такую подробную и полезную статью.
0
linker #
Взял на себя смелость переложить на Народ.Диск тот же самый файл

narod.ru/disk/7549601000/flash.zip.html
–1
eschava #
спасибо большое. добавлю ссылку в пост
–1
linker #
Мнээ, сейчас ещё раз туда сходил посмотреть — Народ.Диск посчитал файл зараженным вирусом. Так что я его там удалил, к сожалению.

Я туда точно ничего не пихал :)
Попробуйте, наверно, сами, ещё разок.
0
eschava #
я тоже :)
ладно, пусть будет одна ссылка
если кому-то сильно надо будет — могут и ко мне обратиться
–1
danko #
Слушайте, неужели действительно ни один лончер не подошёл?
Мне кажется, уж хоть один-то должен был быть получше «наколеночного» неуниверсального решения на бат-файлах? :)
0
eschava #
да я их и не так много пробовал :)
а разве launchy плохой? думаю других, с таким же интерфейсом, нет. я просто добавил к нему несколько команд для своей структуры. unix-way, так сказать
+1
EVEN #
autorun.inf на flash в последнее время вообще зло. Недавно сунул свою флешку в камп другу, а у него прога, мало того что мой autorun.inf снесла, так еще и программы, которые были в корне поменяла расширение на EXE_0. Борьба с autorun.inf идет полным ходом. На хабре даже публиковали как сделать пустой, не удаляемый autorun.inf, чтобы вирус не переписал

0
andry #
проще отключить
0
Radius #
Сделал как Вы написали, но Касперский требует подписать exe-файл каждый раз при запуске.
А так, замечательная работа! Так держать!
0
Goodkat #
>>Совет: старайтесь использовать пути не зависящие от компьютера или текущего пользователя, например %USERPROFILE%\Start Menu для программ в меню «Пуск»
Этот путь тоже зависит от компьютера :) У меня, к примеру, эта папка называется %USERPROFILE%\Startmenü
0
eschava #
спасибо, не знал
ну может со временем появится еще что-то, более универсальное
+1
Goodkat #
startmenu.vbs
Set WSHShell=CreateObject("Wscript.Shell")
Wscript.echo WShShell.SpecialFolders("Startmenu")

startmenu.bat
@echo off & setlocal
for /f "delims=" %%i in ('cscript //nologo "startmenu.vbs"') do set "StartMenu=%%i"
echo Start Menu folder: %StartMenu%


0
eschava #
это отлично, но как это прикрутить к Launchy?
0
Goodkat #
без понятия :)
я не смотрел ваши батники
я просто показал вам, как получить путь к папке меню в переменную %StartMenu%

можете выполнять этот код перел ланчем, или запускать ланчи (если это экзешник) из этого батника
0
eschava #
батники служат только для монтирования-размонтирования TrueCrypt контейнера
лаунчер — чистый Launchy
0
eschava #
а, я понял
вы сохраняете путь в переменную окружения, а она потом будет доступна launchy
да, можно и так попробовать, спасибо
кстати, туда же можно и текущий диск запихнуть

кстати, а это на любом компе будет работать?
0
tower #
все здорово, могу только добавить, что сам контейнер лучше обозвать каким нибудь левым расширением(я меняю обычно на avi ) и затерять в каталоге с множеством файлов.
0
Goodkat #
а лучше поместить контейнер не в файл, а в саму папку :)
0
eschava #
это как?
0
Goodkat #
Мало кто знает, что NTFS позволяет файлам иметь альтернативные потоки данных, и ещё меньше людей знают, что альтернативные потоки данных могут быть и у папок :)
echo foo > ./:bar
— эта команда запишет текст «foo» в поток «bar» текущей папки

К сожалению, большинство программ (а точнее, программистов) в Windows об этой возможности не знают, а потому считают путь типа "/:b" ошибочным. Возможно, это проблема стандартного диалога открытия файлов в Windows XP, но FAR, к примеру, отлично открывает и сохраняет такие штуки.
0
eschava #
а какой смысл в этом? если все равно в bat-файле будет путь к нему
или тут тоже что-то можно придумать?
0
Goodkat #
в каком bat-файле? открывать контейнер можно вручную, без bat-файлов

смысл — ну а какой обычно смысл в стеганографии? скрытие не только содержания контейнера через шифрование, но и самого факта существования зашифрованного контейнера
0
eschava #
согласен, но в данном случае это неприменимо
0
stoune #
Пересел из Launchy на Enso Launcher и не вернусь ни за какие коврижки. А на флешке стоит U3 на одной, а на старой PortableApps.com.
0
sshz #
Есть намного более серьезная вещь чем launchy, это FindAndRunRobot www.donationcoder.com/Software/Mouser/findrun/
Пути можно назначать относительно диска на которм находится эта программа, т.е. не нужно будет указывать несколько путей куда возможно подключилась флешка.

Схема организации данных у меня похожа на вашу, только в truecrypt контейнере находятся только линчые данные, firefox, qip остальное все находится просто на флешке. Приемущества такого способа — чуть большая скорость работы чем из контейнера truecrypt, а это важно при работе с флешки, и если не нужен qip и firefox, контейнер можно вобще не подключать.

Вернемся к FindAndRunRobot, штука очень мощная, можно указывать как в launchy папки типа %USERPROFILE%, но так же можно указывать в каком порядке обыскивать папки, выставлять рейтинг папке, например документы найденный на рабочем столе будет выше в результатх поиска чем документ в «моих документах», можно указать исколько только файлы определнных расширений, указать глубину поиска по папкам. Вобще программа достойна отдельного поста, там еще куча плагинов и еще много всего, на последок скриншот списка моих папок где FindAndRunRobot ищет.


img22.imageshack.us/my.php?image=screenc.gif
0
Shtirlits #
унылое гамно, вот
autorun.inf должен быть от panda, а на флэхе должен быть загрузочный раздел, да и к флэхе лучше обращаться черз фар(на крайняк тотал) а не через лаунчи и эксплорер.
з.ы. сейчас налетят трполле-демоны и лишат меня того, чье название нельзя произносить
з.ы.ы. статья ниочем, не нашел, пол года назад девочка писала как в ком строку винды заходить, её заминусили в ноль, здесь то же, только первый коммент в плюса ушел…

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.