четверг, 21 июля 2016 г.

Запуск установленной (гостевой) Windows 7 в VirtualBox из хостовой Ubuntu 16.04.

Предварительно, пользователь должен быть в группе disk и vboxusers ( sudo usermod -a -G disk $USER && sudo usermod -a -G vboxusers $USER). Для корректной работы grub-mkrescue нужно установить xorriso (sudo apt-get install xorriso).
По третьему способу отсюда:

Создаем директорию:

$ mkdir -p ~/.iso/boot/grub

В этой директории любым способом создал файл grub.cfg следующего содержания:
(Раздел menuentry «Windows 7» скопировать со своего grub.cfg, расположенного по адресу /boot/grub/)

insmod part_msdos
set default=0
set timeout=0
menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos3)'
search --no-floppy --fs-uuid --set=root C070671099FC2625
chainloader +1
}


Здесь убрано все лишнее, GRUB проскакивает быстро и незаметно.

Создаем iso-образ с GRUB2:

$ grub-mkrescue --output=/home/$USER/.iso/grub.iso /home/$USER/.iso/

Создаем VMDK-образ:

$ VBoxManage internalcommands createrawvmdk -filename /home/$USER/VirtualBox/Windows7.vmdk -rawdisk /dev/sda -partitions 3,5 -relative

Далее создаем и настраиваем виртуальную машину так же как и во втором способе.
Так же выбираем grub.iso.
Едиственный нюанс: при автоматической установке дополнений гостевой оси, образ этого iso заменится на VBoxGuestAdditions.iso. Поменяйте его обратно.

Еще раз повторюсь, в примерах используются мои настройки. Вносите изменения.

понедельник, 29 декабря 2014 г.

Лечение Doubly encoded to UTF-8 from CP1251



Файлы с битой кодировкой, которые enca определяет как Doubly encoded to XXX from YYY
Отсюда (XXX - utf8, YYY - cp1251):
cat origin.file | iconv -f utf8 -c -t cp1251//TRANSLIT | iconv -f utf8 -c -t cp1251 | iconv -f cp1251 -c -t utf-8 | sed 's/?/И/g' > fixed.file

вторник, 2 декабря 2014 г.

Коды и имена нажатых клавиатурных клавиш в ubuntu


 Взято отсюда
xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* 
(.*, \(.*\)).*$/\1 \2/p'
Пример консольного вывода после шлёпанья по кнопкам:

$ xev | grep -A2 --line-buffered '^KeyRelease' |  sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
36 Return
40 Cyrillic_ve
45 Cyrillic_el
38 Cyrillic_ef
139 Undo
190 Redo
68 F2
69 F3

 

пятница, 7 марта 2014 г.

понедельник, 17 февраля 2014 г.

среда, 5 февраля 2014 г.

Строки без повторений с помощью bash

$ <что-то, выводящее в stdout> | sort | uniq

Uniq похоже помнит только предыдущую строку, поэтому повторений вразнобой он не замечает. Перед ним нужно сортировать.

UPD
Как подсказали в комментариях, sort -u делает то же самое.