пятница, 3 октября 2008 г.

Linux. Музыка в сети, виртуальные диски и прочая магия mount

Звуки музыки

Бывает так, что хочется послушать музыку. Согласитесь, было такое с вами? =)
Но бывает и так, что музыка лежит не на вашей машине. Вот например у меня за неимением места она складируется на другом компьютере, откуда я её и слушаю.

И слушал я её в Windows и знать не знал что процесс сей сложнее, чем он кажется на первый взгляд. И поставил я Линукс, и отказался он музыку играть.
Amarok сказал что-то вроде не могу проиграть музыку, что-то там сеть ла-ла... ну в общем не помню. Суть в том, что не хочет он это делать.

Если у вас под рукой есть smb4k - тогда все очень просто. В программе вы легко все сделаете с помощью нескольких нажатий мышью. Но если программы под рукой нет - читайте дальше.

В консоли решение проблемы тоже простое. Надо примонтировать сетевую папку как обычный каталог, и тогда Линукс будет думать что играет музыку с диска и никаких проблем не возникнет. Точнее думать так будет Амарок, Линукс то как раз будет в курсе всех наших тайных манипуляций =)
Осталось выяснить, как эту папку примонтировать.

На самом деле все просто. Для этого вам надо:
а) знать имя удаленной машины (через ip-адрес тоже можно, но надо пробовать как это сделать)
б) иметь на ней учетную запись под которой можно зайти по сети
в) ВАЖНО! Имя и пароль к учетной записи должны быть записаны буквами латинского алфавита. По крайней мере у меня с русскими ничего не вышло, как я не пытался
г) наконец, надо иметь у себя пустую папку, в которую вы будете монтировать

Ну и, конечно, установленные пакеты клиента Samba. Что-то вроде libsmbclient (в Мандриве 08), точно по памяти не скажу.

После чего достаточно выполнить команду:

mount -t smbfs -o username=vasya,password=pupkin //NETWORKPC/Music /mnt/Music

Команда mount запускается с параметром smbfs, который указывает, что монтируется сетевая папка.
В качестве опций задаются имя "vasya" и пароль "pupkin".
Потом указывается то ОТКУДА монтируем, где NETWORKPC - имя компьютера в сети на котором лежит папка Music.
Наконец в конце пишем КУДА монтируем - в пустую папку Music в каталоге mnt.

Наконец, если вы монтируете папку в которой лежат файлы и папки с русскими буквами - нужно правильно выбрать кодировку. Для этого добавьте к опциям параметры "iocharset=utf8,codepage=cp866". Итого строка будет выглядеть так:

mount -t smbfs -o username=vasya,password=pupkin,iocharset=utf8,codepage=cp866 //NETWORKPC/Music /mnt/Music

Вот и всё - теперь вся музыка (или что вы там примонтировали?) как будто и не в сети, а у нас на диске.

Кустарный Virtual CD

А бывают еще ситуации, когда надо бы вставить ISO-образ с диском в виртуальный привод. Ну, не знаю как насчет привода, наверное тоже можно, а вот как смонтировать образ в папку - я могу рассказать.
Ситуация не сложнее чем с музыкой, пишем mount, указываем параметры, ОТКУДА, КУДА и получаем результат.
Типичная команда выглядит так:

mount -t iso9660 /home/diman/virtual/Quake3.iso /mnt/virual_cd -o loop

iso9660 - указывает что это ISO-образ
Потом пишем ГДЕ он лежит
Потом указываем КУДА его смонтировать
Наконец в конце добавляем опцию "-o loop"

Теперь мы можем установить Q3 из папки /mnt/virual_cd на нашу систему =)

Верните мне обратно!

Ну а чтобы отмонтировать, используется команда umount. В простейшем случае достаточно указать лишь то КУДА вы примонтировали и система все сделает сама. Например:

umount /mnt/virual_cd

P.S.
Надо заметить, что в процессе могут возникнуть проблемы, например с теми же кодировками. Тогда надо будет экспериментировать с параметрами, которые можно найти в "man mount"

Если вам помогла эта статья - оставьте комментарий! Они доступны даже не зарегистрированным пользователям.

За помощь в вопросе спасибо GrayCat.

Комментариев нет: