субота, 8 вересня 2007 р.

Монтування ISO образів

Одне з питань яке цікавить новачків у Linux, це те яку програму необхідно встановити щоб можна було відкривати ISO образи. Насправді, все, що для цього потрібно, це стандартна команда mount:

Створюємо якусь папку, наприклад /media/isoimage:
sudo mkdir /media/isoimage

Далі монтуємо iso файл (наприклад something.iso) у цю папку:
sudo mount something.iso /media/isoimage/ -t iso9660 -o loop

Щоб відмонтувати використовуємо команду:
sudo umount /media/isoimage

Правда постійно набирати команди не дуже зручно тому можна скористатися іншим способом. Справа у тому, що файловий менеджер Nautilus підтримує скрипти, тому ми можемо написати простий плагін який би дозволяв просто підмонтовувати ISO-файли з допомогою контекстного меню.

1. Створюємо файл mount.sh (у Nautilus клацаємо правою кнопкою і обираємо Створити документ -> Порожній файл, вводимо ім'я, а потім подвійним кліком відкриваємо у текстовому редакторі і набираємо те, що нижче)


#!/bin/bash
# mount
gksudo -k /bin/echo "got r00t?"
BASENAME=`basename $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS .iso`
sudo mkdir "/media/$BASENAME"
zenity --info --title "ISO Mounter" --text "$BASENAME e $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
if sudo mount -o loop -t iso9660 $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS "/media/$BASENAME"
then
if zenity --question --title "ISO Mounter" --text "$BASENAME Образ успішно примонтовано. Відкрити?"
then
nautilus /media/"$BASENAME" --no-desktop
fi
exit 0
else
sudo rmdir "/media/$BASENAME"
zenity --error --title "ISO Mounter" --text "Не можу примонтувати $BASENAME!"
exit 1
fi


2. У вікні Властивості даного файла на закладці Права ставимо галочку напроти Дозволити виконання файлу як програми (на відміну від Windows у Linux програми розпізнаються не по розширення, як .exe наприклад, а по спеціальному атрибуту eXecute)
Інший варіант, скористатися командою:
sudo chmod +x mount.sh

3. Створюємо файл unmount.sh


#!/bin/bash
# unmount
gksudo -k /bin/echo "got r00t?"
BASENAME=`basename $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS .iso`
sudo umount "/media/$BASENAME"
sudo rmdir "/media/$BASENAME"
zenity --info --text "Успішно відмонтовано /media/$BASENAME"
exit 0


4. Аналогічно пункту 2 робимо файл unmount.sh програмою.

5. Відкриємо ще одне вікно Nautilus, заходимо у домашню папку, тиснемо Ctrl+H щоб побачити приховані файли і заходимо у папку .gnome2/nautilus-scripts

6. Копіюємо наші два файли у цю папку (просто перетягуємо мишкою)

Все, тепер щоб відкрити ISO файл достатньо просто клацнути на ньому правою кнопкою і у підменю Сценарії вибрати mount.sh. Щоб відключити том знову ж клацаєш по тому ж ISO файлу правою кнопкою і у Сценаріях обираєш unmount.sh.

Все, ми написали робочий плагін для Nautilus. Тепер можна забути про термінал і команди.

Якщо хочеться, то сценарії можна назвати звичніше. Наприклад файл "mount.sh" можна обізвати "Монтувати ISO", а замість "unmount.sh" написати "Відмонтувати ISO". Оскільки у першому рядку кожного файлу є рядок #!/bin/bash, то розширення файлу не має значення, система зрозуміє, як їх запускати.

3 коментарі:

  1. Для себе прибрав показ вікон (залишив лише запит про відкриття образу), бо сильно нагадує віндові notification windows :)

    OFFTOP: Чудовий блог - зараз рекурсивно прохожу архів записів :) Велике спасибі за корисну інфо.

    ВідповістиВидалити
  2. Дякую. Взагалі то зараз дана інформація вже не так актуально, нині в Ubuntu ISO образи монтуються через контексне меню.

    ВідповістиВидалити
  3. Так, але я новенький у спілкуванні з linux, тож стараюсь дізнатися побільше, щоб бути "на ти" з системою.

    Доречі перейти на Linux змусив дуже невчасний глюк Windows, коли злетіла система, а deadline по курсовій з програмування вже піджимав. Добре, що сусід по кімнаті - лінуксоїд з малку :)

    ВідповістиВидалити