- Добавим новый ключ для физического зашифрованного раздела HDD, на котором расположен swap:
sudo /lib/cryptsetup/scripts/decrypt_derived <dmtable-root-volume-name> | sudo cryptsetup luksAddKey --key-file=<path-to-already-registered-keyfile> /dev/<luks-swap-device> -
Или зададим ключ при создании LUKS-раздела
sudo /lib/cryptsetup/scripts/decrypt_derived <dmtable-root-volume-name> | sudo cryptsetup luksFormat /dev/<luks-swap-device> --key-file -
Этот ключ генерируется на основе ранее созданного зашифрованного root-раздела (параметр <dmtable-root-volume-name>) с помощью скрипта /lib/cryptsetup/scripts/decrypt_derived.
Параметр <luks-swap-device> - имя физического luks-раздела для swap (например, /dev/sda4).
Параметр <path-to-already-registered-keyfile> - путь к ранее зарегестрированному файлу-ключу для расшифровки раздела. - Убедимся, что swap создан:
sudo /lib/cryptsetup/scripts/decrypt_derived <dmtable-root-volume-name> | sudo cryptsetup luksOpen /dev/<luks-swap-device> swap --key-file -
sudo mkswap /dev/mapper/<dmtable-swap-volume-name> - В файл /etc/crypttab добавим/отредактируем строку для работы с разделом swap:
swap UUID=<uuid-of-luks-swap-device> <dmtable-root-volume-name> luks,discard,keyscript=/lib/cryptsetup/scripts/decrypt_derived - В файл /etc/initramfs-tools/conf.d/resume добавим/отредактируем строку для восстановления из swap:
RESUME=UUID=<uuid_of_encrypted_swap_partition> - В файл /etc/fstab добавим/отредактируем строку для монтирования swap:
/dev/mapper/<dmtable-swap-volume-name> none swap sw 0 0 - Обновим initrd для всех установленных ядер:
chroot <target-system-root>
update-initramfs -u -k all
Saturday, December 27, 2014
Гибернация в Linux Mint для зашифрованного HDD
Labels:
dm-crypt,
hibernation,
linux
Saturday, December 13, 2014
Python virtual environment и pip
Создать виртуальное окружение Python:
- cd </path/to/target/project>
- </path/to/needed/python>/bin/pyvenv VENV
Labels:
pip,
programming,
python,
pyvenv,
virtual environment
Сборка Python 3 из исходников в Linux Mint
- # apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm (выбрать нужное)
libreadline-dev - служит для поддержки автодополнения (Tab), истории и навигации курсора (клавиши со стрелками) - Установить необходимые *-dev пакеты (Tcl/Tk, ncurses, ...) для поддержки среды IDLE
- Создать файл install_python.sh со следующим содержимым:
Labels:
linux,
programming,
python
Использование ADB shell
cd <path_to_android_SDK>/platform-tools
sudo ./adb kill-server
sudo ./adb start-server
./adb devices
./adb shell
su
rm /data/system/gesture.key
sudo ./adb kill-server
sudo ./adb start-server
./adb devices
./adb shell
su
rm /data/system/gesture.key
Saturday, November 1, 2014
Настройки Linux
Установка dconf editor:
sudo apt-get install dconf-editor
sudo apt-get install dconf-editor
Labels:
dcong-editor,
linux,
tuning
Thursday, October 16, 2014
Монтируем образ .BIN/.CUE в Linux
Смонтировать: $ fuseiso -p image_file.bin /path/to/mount
Примечание: а) точка монтирования не должна существовать заранее; б) команду выполнять под текущим пользователем
Размонтировать: $ fusermount -u /path/to/mount
Примечание: Точка монтирования также будет удалена
Сконвертировать .BIN/.CUE образ в .ISO можно с помощью Iso9660 Analyzer Tool:
$ iat my_image.bin my_new_image.iso
Сконвертировать .BIN/.CUE образ в .ISO можно с помощью Iso9660 Analyzer Tool:
$ iat my_image.bin my_new_image.iso
Monday, August 4, 2014
Включаем Bluetooth A2DP в Linux Mint
Если блютуз-гарнитура не желает цепляться на Audio Sink (A2DP):
Замечательный пост на тему.
Наши действия:
Устанавливаем blueman и выполняем через него сопряжение и настройку гарнитуры.
В любой стартап скрипт добавляем строку:
pactl load-module module-bluetooth-discover
Редактируем секцию [General] в файле /etc/bluetooth/audio.conf, чтобы A2DP включался по-умолчанию:
[General]
Disable=Headset,Socket
Enable=Sink,Media
Рестарт службы bluetooth:
sudo service bluetooth restart
В файле /etc/pulse/default.pa добавляем строку:
# automatically switch to newly-connected devices
load-module module-switch-on-connect
Рестарт демона pulseaudio:
pulseaudio -k
pulseaudio -D
З.Ы.
Управление модулем из консоли:
Замечательный пост на тему.
Наши действия:
Устанавливаем blueman и выполняем через него сопряжение и настройку гарнитуры.
В любой стартап скрипт добавляем строку:
pactl load-module module-bluetooth-discover
Редактируем секцию [General] в файле /etc/bluetooth/audio.conf, чтобы A2DP включался по-умолчанию:
[General]
Disable=Headset,Socket
Enable=Sink,Media
Рестарт службы bluetooth:
sudo service bluetooth restart
В файле /etc/pulse/default.pa добавляем строку:
# automatically switch to newly-connected devices
load-module module-switch-on-connect
Рестарт демона pulseaudio:
pulseaudio -k
pulseaudio -D
З.Ы.
Управление модулем из консоли:
- /usr/sbin/rfkill [un]block bluetooth
- pactl [un]load-module <modulename>
Sunday, July 27, 2014
update-alternatives
update-alternatives - управляет символическими ссылками, задающими команды по умолчанию.
Labels:
linux,
update-alternatives
Friday, July 25, 2014
Сборка PyQt 5
Дано: Linux, Python 3, Qt 5
Задача: установка PyQt 5 из исходников
Задача: установка PyQt 5 из исходников
Labels:
programming,
PyQt,
python,
SIP
Monday, July 7, 2014
Шпаргалка Git
Добавить новую ветку в удалённый репозиторий:
опция -u - установит эту ветку в качестве 'апстрима'.
Добавить в локальный репозиторий новую ветку из удалённого репозитория:
git fetch && git checkout <remote-branch-name>
- git checkout -b <local-branch-name>
- git push [-u] <remote-name> <local-branch-name>:<remote-branch-name>,
опция -u - установит эту ветку в качестве 'апстрима'.
Удалить ветку из удалённого репозитория:
git push <remote-name> :<remote-branch-name>Добавить в локальный репозиторий новую ветку из удалённого репозитория:
git fetch && git checkout <remote-branch-name>
Добавить новый удалённый репозиторий:
git remote add <remote-name> <remote-path>
Установить ветку из удалённого репозитория в качестве апстрима:
git branch -u <remote-name>/<remote-branch-name> [local-branch-name],
если local-branch-name не задана, используется текущая ветка
-----------------------------------------------------------------------------------------------
Создать патч:
git diff COMMIT - патч без учёта автора и подписей
git format-patch START_COMMIT - патч с учётом автора и подписей
git format-patch START_COMMIT..END_COMMIT - то же, но для заданного диапазона
Применить патч:
git apply < FILE.patch - применит патч без учёта подписей и автора
git am < FILE.patch - применит патч с учётом подписей и автора
-----------------------------------------------------------------------------------------------
Если изменения были в обеих ветках, которые надо слить:
git rebase -i TARGET_COMMIT - на TARGET_COMMIT накладывается текущая ветка
git rebase -i TARGET_COMMIT SRC_COMMIT - на TARGET_COMMIT накладывается SRC_COMMIT
При возникновении конфликтов при поочередном накладывании коммитов работа команды будет останавливаться, а в проблемные местах файлов появятся соответствующие метки. После редактирования — разрешения конфликтов — файлы следует внести в индекс командой git add и продолжить наложение следующих коммитов командой git rebase --continue. Альтернативными выходами будут команды git rebase --skip (пропустить наложение коммита и перейти к следующему) или git rebase --abort (отмена работы команды и всех внесенных изменений).
git remote add <remote-name> <remote-path>
Установить ветку из удалённого репозитория в качестве апстрима:
git branch -u <remote-name>/<remote-branch-name> [local-branch-name],
если local-branch-name не задана, используется текущая ветка
-----------------------------------------------------------------------------------------------
Создать патч:
git diff COMMIT - патч без учёта автора и подписей
git format-patch START_COMMIT - патч с учётом автора и подписей
git format-patch START_COMMIT..END_COMMIT - то же, но для заданного диапазона
Применить патч:
git apply < FILE.patch - применит патч без учёта подписей и автора
git am < FILE.patch - применит патч с учётом подписей и автора
-----------------------------------------------------------------------------------------------
Если изменения были в обеих ветках, которые надо слить:
git rebase -i TARGET_COMMIT - на TARGET_COMMIT накладывается текущая ветка
git rebase -i TARGET_COMMIT SRC_COMMIT - на TARGET_COMMIT накладывается SRC_COMMIT
При возникновении конфликтов при поочередном накладывании коммитов работа команды будет останавливаться, а в проблемные местах файлов появятся соответствующие метки. После редактирования — разрешения конфликтов — файлы следует внести в индекс командой git add и продолжить наложение следующих коммитов командой git rebase --continue. Альтернативными выходами будут команды git rebase --skip (пропустить наложение коммита и перейти к следующему) или git rebase --abort (отмена работы команды и всех внесенных изменений).
Если нужно применить выборочный коммит к текущей ветке:
git cherry-pick COMMIT [-n] - ключ -n показывает, что изменения будут применены без индексации и создания нового коммита
Найти коммит в истории изменений, даже если на него нет указателей (он впереди всех):
git reflog
Для редактирования конфликтов:
git mergetool
Удалить лишний файл из всей истории коммитов git:
git filter-branch --tree-filter 'rm <top/secret/file>' HEAD
В результате директория .git/refs/original будет описывать состояние дел до выполнения операции. Убедиться, что команда filter-branch сделала то, что нужно => и потом можно удалить эту директорию.
Эту директорию нужно удалить, чтобы использовать данную команду снова.
Найти коммит в истории изменений, даже если на него нет указателей (он впереди всех):
git reflog
Для редактирования конфликтов:
git mergetool
Удалить лишний файл из всей истории коммитов git:
git filter-branch --tree-filter 'rm <top/secret/file>' HEAD
В результате директория .git/refs/original будет описывать состояние дел до выполнения операции. Убедиться, что команда filter-branch сделала то, что нужно => и потом можно удалить эту директорию.
Эту директорию нужно удалить, чтобы использовать данную команду снова.
Labels:
Git,
programming
Sunday, June 29, 2014
WOL in OpenWRT
Установить Wake-on-LAN в OpenWRT:
Настройка:
opkg install wol
Пример использования:
wol xx:xx:xx:xx:xx:xx, где xx - целевой MAC адрес
Настройка:
Labels:
OpenWRT,
wake-on-lan,
wol
Thursday, June 26, 2014
Friday, June 6, 2014
beats audio в linux
Linux Mint 17 пока что не распознаёт корректно многоканальный звук 92HD91BXX от Intel, и после установки системы по умолчанию включается стереорежим, а пищалки и сабвуфер не задействуются.
Исправить это можно вручную.
Исправить это можно вручную.
Labels:
audio,
beats audio,
linux
Tuesday, May 27, 2014
Wine и serial port
Если программа, запущенная под Wine, не видит последовательный порт:
- ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
- sudo usermod -aG dialout $USER
пользователь сможет работать с портом; чтобы изменения вступили в силу - перелогиниться - в файл ~/.wine/system.reg сразу после #arch=win64 добавить:
[Hardware\\Devicemap\\Serialcomm] 1231984861
"Serial0"="COM1"
Labels:
linux,
serial port,
wine
Sunday, May 25, 2014
Ведьмак 2, Steam и Linux
Актуально для Linux Mint 16 (Ubuntu 13.10) на ноутбуках с дискретной картой Nvidia и поддержкой Optimus.
Игра устанавливается в ~/.local/share/Steam/SteamApps/common/the witcher 2.
Настройки хранятся в ~/.local/share/cdprojektred/witcher2/GameDocuments/Witcher 2.
Настройки хранятся в ~/.local/share/cdprojektred/witcher2/GameDocuments/Witcher 2.
Subscribe to:
Posts (Atom)