Восстановление grub и ядра c помощью Ubuntu 11.04 livecd (usb-flash)

"Дурная голова покоя рукам не дает" - это про меня, когда с помощью хитрых манипуляций, я удалила ядро и испортила grub. Но, так же интереснее, можно прокачать скилл по починке) Итак, если с вами стряслось что-то похожее, а именно, не грузится выбор загружаемых систем (сломался grub) или kernel panic и что-то наподобие, то внимайте.
1. Монтируем родные разделы
1.1. Вспомним, какие разделы присутствуют в системе с помощью sudo fdisk -l

geba@geba-SQ45S70S:~$ sudo fdisk -l

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 3040 24413184 83 Linux # /
/dev/sda2 3040 5471 19530752 83 Linux # /var
/dev/sda3 5471 5720 1999872 82 Linux своп / Solaris
/dev/sda4 5720 38914 266626048 83 Linux # /home
В моем случае /var (/dev/sda2) и /home (/dev/sda4) вынесены в отдельные разделы.
1.2. Монтируем разделы
sudo mount /dev/sda1 /mnt
Если у вас как и у меня, диск разделен по отдельным разделам, то монтируем их дополнительно
sudo mount /dev/sda2 /mnt/var
sudo mount /dev/sda4 /mnt/home
2. Устанавливаем ядро и обновляем grub
2.1. Настройка интернета
Он нам понадобится, чтобы закачать новое ядро. Настраиваем интернет, подключаемся к wifi или что у нас есть. Далее копируем resolv.conf в родную систему, не забыв сделать бэкап.
sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.origin
sudo cp /etc/resol.conf /mnt/etc/resolv.conf
2.2. Создаем chroot нашей родной системы
sudo chroot /mnt
Теперь мы у себя дома, поздравляю :)
2.3 Обновляем систему и ставим ядро
apt-get update
apt-get install linux-image-generic
update-initramfs -cv -k all
2.4. Обновляем grub
update-grub
2.5. Выходим из chroot
exit
3. Подчищаем за собой
3.1. Восстанавливаем resolv.conf из п. 2.1.
sudo rm /mnt/etc/resolv.conf
sudo cp /mnt/etc/resolv.conf.origin /mnt/etc/resolv.conf
3.2. Отмонтируем разделы
Если у вас диск не разделен под разные разделы, то пропускаете первые две команды.
sudo umount /mnt/home
sudo umount /mnt/var
sudo umount /mnt

Всё, теперь перегружаемся, вытаскиваем LiveCD и ,я надеюсь, радуемся восстановленной системе :)

Белый экран (blank screen) при сборке мавеном с flexmojos 3.9 + Flex SDK 4.5.1

Решили поднять версию Flex SDK до 4.5.1 в pom.xml, сборка прошла без ошибок, все замечательно. Если бы не одно НО, собранная флешка выдавала девственно чистый экран, без каких либо признаков жизни. Хотя размер выходного swf правильный, печалька, одним словом. Погуглив выяснилось, что в pom.xml надо указать принудительно swf-version = 11, что соответствует Adobe Flash Player 10.2.
Итак в разделе configuration добавляем ссылку на внешний конфиг flex-config-swf-version-11.xml

<plugin>
    <groupId>org.sonatype.flexmojos</groupId>
    <artifactId>flexmojos-maven-plugin</artifactId>
    <version>3.9</version>
    ...
    <configuration>
        ...        
        <configFiles>
            <configFile>flex-config-swf-version-11.xml</configFile>
        </configFiles>
    </configuration>
</plugin>

Файл flex-config-swf-version-11.xml должен лежать на одном уровне с pom.xml, в нем указываем swf-version:
<?xml version="1.0"?>
<flex-config>
    <swf-version>11</swf-version>
</flex-config>

Конвертирование DjVu в PDF под Ubuntu & MacOS

UPD: Данный способ работает и для MacOS.

Почему вдруг мне это понадобилось? Разумеется, ничего не имею против формата DjVu, считаю его идеальным для нераспознанных сканов книг. Но недавно стала счастливым обладателем Amazon Kindle DX, а он таки привереда и не воспринимает DjVu, поэтому пришлось искать как конвертировать кучу моих книг в PDF. Пришлось попробовать несколько способов, прежде чем я прекратила поиски. Итак с лирикой покончено, приступим:

1. Ставим пакет djvulibre:
Для Ubuntu
sudo apt-get install djvulibre-bin

Для MacOS используем мастер пакетов brew
brew install djvulibre

2. Для конвертации книги с названием ActionScript3.djvu используем следующую команду:
ddjvu -format=pdf ActionScript3.{djvu,pdf}

В итоге мы получим ActionScript3.pdf в той же папке. Такой метод работает существенно быстрее чем через gscan2pdf или связку djvups + ps2pdf

Полезные выражения при написании bat файлов

Примечание: В бат файлах надо удваивать знак процента перед переменной (for %%i in (*.*) do echo %%~ni), когда же вы непосредственно запускаете выражения в командной строке то достаточно одного знака процента (for %i in (*.*) do echo %~ni). Примеры приведены для непосредственного запуска в консоле.

Получить список всех файлов, которые отмечены как checked out в VSS

Устанавливаем переменную где лежит репозиторий

SET SSDIR=\\SERVER\VSS\

Добавляем в PATH путь до ss.exe

SET PATH=%PATH%;C:\Program Files\Microsoft Visual Studio\VSS\win32\

И получаем сам список для текущего пользователя, если надо посмотреть для другого то вместо -U надо указать -UBasya

ss Status $/ -R -U

Инструмент для нарезки тайлов для Яндекс.Карт

В случае если надо использовать API Яндекс.Карт на своих данных, то возникает потребность нарезать слои на тайлы для необходимых масштабов. Сначала пользовалась скриптом для фотошопа, но рабочая система у меня убунту, поэтому фотошоп как-то не тру.
Поискала и нашла замечательную тулзу googletilecutter, которая отлично подходит для этих дел,надо только чтобы в системе был поставлен ImageMagick и advpng или pngcrush. Использовать, например, так :

bash googletilecutter-0.10.sh -o 17 -t 78749,44558 -z 17 -k map_17.png

Если вдруг возникнут вопросы по использованию, обращайтесь)

UPD: Обновился скриптец, теперь актуальная версия googletilecutter 0.11

Смена локализации в Adobe FlashBuilder

Хороша новая IDE от Adobe - Flash Builder (ранее известная как Flex Builder), но почему меня не спрашивают какой язык интерфейса выбрать! Локализованная версия FlashBuilder выглядит впечатляюще :D



Таким пользоваться только сильно-сильно не любить себя)) Для переключения языка интерфейса с русского на привычный английский надо проделать следующее:

в конфиге Gumbo.ini, который должен находиться по адресу [Install Path]/Gumbo.ini заменить ru_RU на en_EN.

Мной этот конфиг найден не был (его создание тоже не возымело эффекта), НО я нашла конфиг [Install Path]/eclipse-host-distro/eclipse.ini, где и проделала замену ru_RU на en_EN.


В результате FlashBuilder теперь английский!

Запуск .bat файла из сетевой папки

Был скрипт, который в тихом (silent) режиме ставил некоторый пакет программ, удалял предыдущие, накатывал обновления. Тестировалось всё это дело либо на локальном диске либо на сетевой шаре подключенной как диск(через net use). Все работало замечательно, пока не попробывали запустить батник напрямую из шары и тут нам выдало нелицеприятное:

Указанный путь был использован при запуске CMD.EXE в качестве текущей папки. CMD.EXE не поддерживает пути UNC. По умолчанию выбрана системная папка Windows.
И всё сломалось)) Теперь для батника текущая директория сменилась, была не та из которой он запущен (например \\server\data\),а стала С:\Windows, если мы выполним в этом скрипте dir, то нам выведется листинг системной папки винды) Соотвественно если в скрипте стоял запуск с относительными путями типа
Msiexec /I Install\setup.msi /qb
то установщик ничего не найдет(в системной папке ничего такого же нет!) и хорошенько ругнется;) А если у Вас стояла команда удаления файлов в текущей директории, хехе, то тут надо быстрее жать Ctrl+C иначе будет очень больно)))

Решения
данной проблемки нашлось два:

1. Указывать абсолютные пути
Путь откуда был запущен наш батник, то есть директорию запуска бат файла, можно получить через
%~dp0
В ней содержится строка вида "\\server\something\", таким образом надо дополнить запуск программ или еще чего что делает ваш скриптик:
Msiexec /I "%~dp0Install\setup.msi" /qb
1.1 Очень похож по методу на первый, с той лишь разницей что мы принудительно меняем каталог на тот из которого был запущен батник:
Msiexec /I "cd "%~dp0"
И таким образом можно опять использовать относительные пути

2. Заставить винду не ругаться на сетевые пути и не менять текущий каталог
В этом случае надо поправить кое-что в реестре, а именно выставить DisableUNCCheck в единичку. Создаем файл с расширением .reg и копируем туда этот текст:
REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001
Запускаем и радуемся, что теперь винда не ругается при запуске батника из шары и ничего не меняет;)

Надеюсь кому-нить пригодится))

Клонирование дисков VirtualBox

Иногда бывает необходимость в создании еще одной виртуальной машины идентичной существующей. Для этого мы копируем диск (vdi) в другое место, но просто так добавить его через "Менеджер виртуальных носителей" нам не удастся, так как такой uuid диска уже есть: Чтобы присвоить новый uuid нам надо воспользоваться недокументированной командой

"C:\Program Files\Sun\xVM VirtualBox\VBoxManage.exe" internalcommands sethduuid newHardDisk.vdi
И всё, мы можем легко добавлять этот диск через "Менеджер виртуальных носителей". Затем создаем новую виртуальную машину, скармливая добавленный диск и вуаля, машина склонированна;)

Использование параметров командной строки в AIR приложениях

Попробую начать серию достаточно вольных переводов популярных статей, посвященных Adobe AIR и Flex, прошу сильно из-за возможных косяков не пинать :D

Итак, приступим. Оригинальная статья называется How do I use command line arguments with my AIR application? .

Многие приложения можно запускать с определенными ключами, переданными из командной строки, зачастую это является очень удобным. AIR также предоставляет такую возможность посредством подписки на событие InvokeEvent. Данное событие содержит аргументы, которые были переданы при запуске или во время работы приложения.

Обработка события InvokeEvent
Для начала надо подписаться на это событие у экземпляра NativeApplication в нашем приложении. Это можно сделать как в MXML, так и c помощью ActionScript :
MXML:

<mx:WindowedApplication
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="vertical"
    invoke="onInvoke(event)">
    ...
</mx:WindowedApplication>


* This source code was highlighted with Source Code Highlighter.

ActionScript :
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);
При получении события список переданных аргументов находится в массиве arguments. Например, следующий код выводит список переданных ключей:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    invoke="onInvoke(event)">
    <mx:Script>
    <![CDATA[
        private function onInvoke(event:InvokeEvent):void
        {
            if(0!=event.arguments.length)
                for each (var argument:String in event.arguments)
                {
                    txtArguments.text+=argument+"\n";
                }
        }
     ]]>
  </mx:Script>
  <mx:Label text="Arguments:" x="0" y="0"/>
  <mx:TextArea id="txtArguments" x="0" y="26" width="100%" height="100%"/>
</mx:WindowedApplication>


* This source code was highlighted with Source Code Highlighter.
Если запустить приложение с ключами
TestAir.exe help --user=root
То результатом будет:

Как Вы можете наблюдать AIR не делает разграничения между ключами и их значениями, по сути просто строку входных параметров разделяют по пробелу. Поэтому работу по распознаванию, что есть ключ, а что значение надо проводить самому.

Установка RedMine как службы

Имеем работающий RedMine+MySQL (под ОС Windows), запускаемый из консоли. Надо установить RedMine как службу. Мои действия были следующими:
1) Если MySQL не установлен как служба, то

mysqld-nt.exe --install

2) Переходим в папку ruby/bin

ruby/bin>gem install mongrel --include-dependencies

Если будет ошибка типа этой “ERROR: While executing gem … (Gem::RemoteFetcher::FetchError)”
То необходимо настроить прокси командой наподобие этой:

ruby/bin>set http_proxy=http://10.105.24.70:8080

3) При установке выбираем “3. mongrel 1.1.5 (x86-mswin32-60)”
4) Делаем

ruby\bin>gem install mongrel_service --include-dependencies

Выбираем
1. mongrel_service 0.3.4 (i386-mswin32)
1. win32-service 0.5.2 (mswin32)
5) Делаем

ruby\bin>mongrel_rails service::install -N RedMine -c "E:\wwwRedmine\RedmineLast\redmine-0.8.0" -p 3000 -e production

где
-N name это название устанавливаемой службы
-p NumPort это номер порта на котором будет запускаться служба

Вуаля, и мы имеем службу RedMine ;)

Яндекс.Метрика

Код отслеживания Google Analytics

Powered by Blogger