Running Debian Linux in VMware Player

Некоторое время назад я сделал себе образ Debian Etch в VMware Workstation для моих программистских нужд. Этим образом я пользовался работая в Microsoft Windows XP. Не так давно мне снова потребовался этот образ для работы.

Сказано — сделано. Установил VMware Player 2.5.0, открыл предварительно сохранённый образ. Открылся диалог, вопрошающий меня, был ли скопирован или перенесён открываемая виртуальная машина. Ответил — “I copied it”. Когда виртуалка запустилась и загрузилась, я обнаружил, что сеть не работает. Ifconfig показывал, что eth0 отсутствует и в системе имеется только lo интерфейс. ifup eth0 выдал ошибку:

eth0: ERROR while getting interface flags: No such device

Тем не менее, я сделал dmesg | grep eth и обнаружил, что драйвер pcnet32 успешно загружен и работает в виртуальной машине.

vmware:~# dmesg | grep eth
eth0: registered as PCnet/PCI II 79C970A

После поисков в гугле, я нашёл причину проблемы и её решение. Проблема была в том, что когда VMware Player запускается, он генерирует MAC адрес для сетевой карты в виртуальной машине такой же, как UUID в моей системе.

Для решения проблемы я отредактировал в виртуальной Debian Etch файл /etc/udev/rules.d/z25-persistent-net.rules. В нём были строки:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# MAC addresses must be written in lowercase.

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==»net», DRIVERS==»?*», ATTRS{address}==»00:xx:xx:xx:xx:48″, NAME=»eth0″

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==»net», DRIVERS==»?*», ATTRS{address}==»00:xx:xx:xx:xx:47″, NAME=»eth1″

Я закомментировал первую строку с eth0 на конце, а во второй строке заменил “eth1″ на “eth0″. Получилось следующее:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# MAC addresses must be written in lowercase.

# PCI device 0x1022:0x2000 (pcnet32)
#SUBSYSTEM==»net», DRIVERS==»?*», ATTRS{address}==»00:xx:xx:xx:xx:48″, NAME=»eth0″

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==»net», DRIVERS==»?*», ATTRS{address}==»00:xx:xx:xx:xx:47″, NAME=»eth0″

После перезапуска VMware OS eth0 нашёлся в системе и заработал нормально.

How to play MKV files on Linux

Для просмотра MKV файлов на своём ноутбуке, я пользуюсь плеером Kmplayer. Дополнительно я установил пакет mkvtoolnix:

apt-get install mkvtoolnix

HD Video смотрится гораздо лучше. 😉

Также хорошо играет MKV файлы VLC Media Player.

I830PMEvent: Capability change

Вскоре после того как я установил KDE4, экран моего ноутбука начал своевольно отключаться до тех пор, пока я не нажимал на какую-нибудь клавишу или двигал мышью. Первое впечатление было, что это срабатывает энергосберегающий режим или скринсейвер, но это были не они.

Я начал просматривать файл /var/log/Xorg.0.log:

tail -f /var/log/Xorg.0.log

и выяснил, что все эти мигания сопровождались записью в логе:

PM Event received: Capability Changed
I830PMEvent: Capability change

Решение проблемы, которое я нашёл в интернете: добавить в файл /etc/modprobe.d/blacklist строку “blacklist video“.

Access to shared folders — 2

Ранее я писал, что есть несколько способов доступа к расшаренным папкам в Microsoft Windows.

Второй метод — smbmount

Smbmount является частью пакета smbfs, так что установим его:

apt-get install smbfs

Как подключиться к удалённому хосту? Очень просто:

smbmount //192.168.0.5/video /home/alexey/video_05

где video_05 это папка, которую я предварительно создал в своём домашнем каталоге. При попытке подключения будет запрошен пароль. Если на удалённом хосте разрешён анонимный доступ к папке, не нужно ничего вводить, достаточно просто нажать на “Enter”. Теперь можно смело работать с файлами на удалённом хосте как будто они расположены где-то на моём жёстком диске.

Что делать, если разрешён доступ с определённым логином и паролем? Нет никаких проблем:

smbmount //192.168.0.5/video /home/alexey/video_05 -o user=username
password=mysecretpass

Я предпочитаю не писать пароль в командной строке, чтобы он не сохранился в файле .bash_history. 😉

Access to shared folders — 1

В моей сети есть несколько компьютеров с Microsoft Windows XP. Иногда у меня появляется необходимость скопировать файлы с этих компьютеров, или наоборот — загрузить файлы на них. Как обычно, сделать это можно несколькими способами. 🙂

Первый способ

В случае, если необходимо оперировать с одним файлом, я использую smbclient и работаю с удалённой машиной примерно как с FTP:

alexey@hp:~$ smbclient //192.168.0.5/video
Enter alexey’s password: [just press «enter» because of one no need password]
Domain=[WS09] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: > dir
. D 0 Wed Feb 25 23:06:19 2009
.. D 0 Wed Feb 25 23:06:19 2009
Stomp D 0 Fri Mar 6 17:31:14 2009
Takedown D 0 Wed Mar 4 14:59:36 2009
The Wire D 0 Fri Feb 20 22:51:27 2009
smb: > cd Takedown
smb: Takedown>dir
. D 0 Wed Mar 4 14:59:36 2009
.. D 0 Wed Mar 4 14:59:36 2009
Takedown.avi A 706809856 Tue Feb 17 23:33:25 2009
Takedown.srt A 78449 Tue Feb 17 22:15:10 2009
Thumbs.db AHS 4608 Wed Mar 4 14:59:48 2009

59618 blocks of size 4194304. 32293 blocks available
smb: Takedown>get Takedown.avi [get this file to current directory on my laptop]
getting file DownloadsVideoTakedownTakedown.avi of size 706809856 as
Takedown.avi (1805,4 kb/s) (average 1805,4 kb/s)
smb: DownloadsVideoTakedown>

После проделанной операции у меня в рабочем каталоге лежит файл Takedown.avi и я могу сказать “пока” удалённому хосту:

smb: Takedown> exit
alexey@hp:~$

Как я сказал, описанный метот годится когда нужно скачать, либо закачать один файл. Но когда возникает потребность скопировать несколько файлов и/или папок, этот метод никуда не годится в силу его неудобства. В этом случае я пользуюсь вторым способом доступа к расшаренным папкам — smbmount.