воскресенье, 5 мая 2013 г.

VirtualBox и raw диски

Взято от сюда: http://help.ubuntu.ru/wiki/virtualbox

Меня интересовало следующее:

Создание RAW диска

Для ускорения работы виртуальной системы с диском иногда имеет смысл разрешить ей доступ к реальным разделам дисков основной системы. Чтобы виртуальная система имела возможность работать с диском практически напрямую, необходимо заранее создать так называемый RAW диск.
По сути RAW диск не что иное, как небольшой конфигурационный файл, указывающий на соответствующий раздел физического диска или весь диск целиком. Нетрудно догадаться, что соответствующий раздел или диск не должны использоваться основной системой для хранения своих данных.
Если таких разделов в вашей системе нет, их можно создать например с помощью утилиты GParted, поджав один или несколько существующих разделов.
Стоит отметить, что создание RAW диска недоступно через графический интерфейс. Придется запускать команды в консоли.
Первое, что надо сделать - определиться какой раздел или диск мы отдадим на растерзание виртуальным системам:
$ ls -al /dev/sd*
brw-rw---- 1 root disk 8, 0 2010-10-01 15:13 /dev/sda
brw-rw---- 1 root disk 8, 1 2010-10-01 15:13 /dev/sda1
brw-rw---- 1 root disk 8, 2 2010-10-01 15:13 /dev/sda2
brw-rw---- 1 root disk 8, 3 2010-10-01 15:13 /dev/sda3
brw-rw---- 1 root disk 8, 4 2010-10-01 15:13 /dev/sda4
brw-rw---- 1 root disk 8, 5 2010-10-01 15:13 /dev/sda5
brw-rw---- 1 root disk 8, 6 2010-10-01 15:13 /dev/sda6
Например, мы решили выделить раздел sda6. Как видно выше, по умолчанию все разделы принадлежат исключительно суперпользователю. Соответственно для пользователя, под которым будет запускаться виртуальная система (в нашем случае stc) нужно прописать права доступа к нужному разделу. Для этого под правами суперпользователя создаем файл /etc/udev/rules.d/99-vbox-disk-rights.rules, например, так:
sudo gedit /etc/udev/rules.d/99-vbox-disk-rights.rules
и в него пишем следующую строчку
KERNEL=="sda6", OWNER="stc"
Если доступ нужен любому пользователю, имеющему право запускать виртуальные машины, проще прописать доступ всей группе vboxusers:
KERNEL=="sda6", GROUP="vboxusers"
Если вы хотите передать виртуальным системам несколько разделов, то повторите эту строчку для каждого из них, заменяя имя раздела (или диска).
Перегружаем систему и проверяем:
$ ls -al /dev/sd*
brw-rw---- 1 root disk 8, 0 2010-10-01 15:13 /dev/sda
brw-rw---- 1 root disk 8, 1 2010-10-01 15:13 /dev/sda1
brw-rw---- 1 root disk 8, 2 2010-10-01 15:13 /dev/sda2
brw-rw---- 1 root disk 8, 3 2010-10-01 15:13 /dev/sda3
brw-rw---- 1 root disk 8, 4 2010-10-01 15:13 /dev/sda4
brw-rw---- 1 root disk 8, 5 2010-10-01 15:13 /dev/sda5
brw-rw---- 1 stc  disk 8, 6 2010-10-01 15:13 /dev/sda6
Теперь все готово к созданию диска. Вводим команду (без sudo):
VBoxManage internalcommands createrawvmdk -filename /home/stc/.VirtualBox/HardDisks/sda.vmdk -rawdisk /dev/sda6
Все, диск создан.
Теперь при создании виртуальной машины, вместо создания нового виртуального диска, выберите «Использовать существующий», справа от поля ввода нажмите кнопку «Выбрать образ» и укажите путь до созданного vmdk файла (в нашем случае /home/stc/.VirtualBox/HardDisks/sda.vmdk).
Стоит уточнить, что выделенные таким образом в виртуальный RAW диск разделы, будет рассматриваться гостевой системой как отдельные диски, поэтому основная система к нему обращаться не сможет (в каждом разделе будет вся структура диска, с MBR и своей разбивкой на разделы). Именно поэтому при создании таких разделов, не стоит их форматировать и монтировать к основной системе.
И второе: если вы создаете «снимок» состояния системы, это значит, что все изменения в состоянии виртуального диска будут записываться не на диск, а в файл изменений, что снизит быстродействие вашей виртуальной машины. Каждый такой снимок на любом типе виртуального диска по определению будет замедлять операции записи и чтения пропорционально количеству уже существующих снимков.

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

Настройка cups (в том числе для печати с другого компьютера).

Как настроить удалённый доступ к web-интерфейсу cups тут не буду писать. И про драйвер «MS Publisher Imagesetter» тоже. Про это два предыдущих поста.

Мне нужно было подключить к компьютеру с Debian принтер HP LaserJet 1200, принтер подключается через параллельный порт. Возникла проблема: cups не видел этот принтер. Оказалось нужно добавить себя в группу "lpadmin", вместо "user" ставим свой логин:
 sudo usermod -a -G lpadmin user
В RERemix такой проблемы не возникало.

После этого принтер появился на локальной машине.

Чтобы подключить его к удалённой машине, нужно в настройках cups поставить галочки в "Разрешить совместный доступ к принтерам, подключенным к этой системе" и "Разрешить печать из Интернета". После этого на удалённой машине с Linux принтер виден и подключается так же через "Найти новый принтер". Для печати из Windows в настройках принтера нужно разрешить "Совместный доступ", иначе принтер будет виден, но не будет печатать.

Что в итоге получилось:
1.Принт-сервер на Debian (32 бита), с подключённым к нему принтером HP LaserJet 1200.
2.Клиент на RERemix (64 бита), использовался тот же драйвера из cups что и на принт-сервере.
3.Клиент на Windows 7 (64 бита), использовался драйвер «MS Publisher Imagesetter».

 В общем и целом результатом доволен, но всё же хотелось бы использовать RERemix вместо Debian. Как-то оно привычнее, хоть и будет жрать больше ресурсов. Короче, есть где ещё пахать и сеять. (rolf)


Чего можно почитать интересного:
http://wiki.debian.org/SystemPrinting
https://wiki.archlinux.org/index.php/CUPS_(Русский)
http://mydebianblog.blogspot.ru/2006/11/debian-printing-via-cups_27.html
http://gq.net.ru/2007/06/08/printing-in-linux/

cups удаленный доступ к web-интерфейсу

Умолчательный конфиг cups даёт доступ только с локалхоста. Сие безопасно, но не удобно. Гугление дало результат:

Оригинал: http://vova33.blogspot.ru/2010/04/cups.html

cups удаленный доступ

Строки которые нужно заменить или добавить выделены жирным

Port 631 заменить ее строку Listen Localhost:631
Listen /var/run/cups/cups.sock

# Show shared printers on the local network.
Browsing On
BrowseOrder allow,deny
# (Change '@LOCAL' to 'ALL' if using directed broadcasts from another subnet.)
BrowseAllow @LOCAL

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Restrict access to the server...
<Location />
Order allow,deny
Allow @LOCAL добавить
</Location>

# Restrict access to the admin pages...
<Location /admin>
Encryption Required
Order allow,deny
Allow @LOCAL добавить
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @LOCAL добавить
</Location>

потом можно удаленно подключиться по адресу ip:631 или локально lynx localhost:631 и запустить принтер который не печатает. Также локально lynx localhost:631 можно включить и удаленные доступ через меню Администрирования (прийдется ввести логин рута и пароль) и после этого не забыть чуть ниже нажать кнопку сохранить настройки

Печать из windows на cups-принтер

Понадобилось подключить пару старых принтеров к Windows 7, на данный момент процесс успешно прошёл стадию эксперимента ))). В отличие от приведённой ниже статьи, я пробовал подключать принтер ещё и через samba, используя так же драйвер «MS Publisher Imagesetter». К машине с RERemix 6 был подключен принтер HP LaserJet 1200 series, в VirtualBox были установлены Windows XP и Windows 7 (64), и там и там был успешно подключен сетевой принтер.

Оригинал: http://avz.org.ua/wp/2011/06/17/printing-to-cups-from-windows/
Там, кстати, много чего ещё интересного есть.



Чтобы иметь возможность сетевой печати на компьютере с виндой на принтер, подключенный к linux-машинке с CUPS-ом (Common Unix Printing System), нужно проделать следующее:
  1. Проверить, что в CUPS-е разрешён общий доступ к принтеру. Для этого идём по ссылке http://10.1.1.49:631/printers/scx4200 (IP-адрес и имя принтера заменить в соответствии с Вашим случаем). Должна быть надпись «разрешен совместный доступ».
  2. В windows запускаем «Мастер установки принтеров» — через панель управления или командой
    1. rundll32 SHELL32, SHHelpShortcuts_RunDLL AddPrinter
    жмём «Далее…», выбираем опцию «Сетевой принтер или принтер подключенный к другому компьютеру», далее выбираем опцию «Подключиться к принтеру в Интернете, домашней сети или в интрасети»
  3. В поле URL вводим адрес принтера, например: http://10.1.1.49:631/printers/scx4200
    настройка принтера для печати через CUPS
    Если спросит про драйвер, выбрать изготовителя «Generic» и модель «MS Publisher Imagesetter». Жмём «Далее…» и принтер готов к использованию.
Если что-то не работает, в проверить следующее:
  1. что в firewall-е на linux-машинке открыт TCP-порт 631 для windows-клиента.
  2. что в винде в Internet Explorer-е ОТКЛЮЧЕН прокси-сервер (пол-часа голову ломал в своё время, пока не допёр посмотреть туда)

пятница, 26 апреля 2013 г.

sdelete.exe

Понадобилось перенести с одной машины на другую образ диска VirtualBox с виндой. Диск был размером в 20 гигов. Флешки таких размеров под рукой не было, да и реально информации там было всего на пару-тройку гигабайт. Решил тупо сжать архиватором файл с образом, но загвоздка была в том, что "пустое" место на диске в реальности не пусто, поэтому для эффектитивного сжатия решил очистить "пустоту". В инете нашел пару рецептов, проще всего воспользоваться программой sdelete.

Качаем файл с сайта мелкомягких, читаем ман и атакэ!