LXF130:Ответы

Материал из Linuxformat.

Версия от 10:40, 19 апреля 2011; Crazy Rebel (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Ответы

Есть вопрос по открытому ПО? Пишите нам по адресу [maito:answers@linuxformat.ru answers@linuxformat.ru]

1 Экраны в экранах

В Иногда мне требуется пользоваться командой runlevel 3. Поскольку я делаю это из Konsole, мне, к сожалению, приходится открывать множество терминальных сеансов. Не подскажете ли вы какой-нибудь более изящный способ?

Мохд Ридзуан Бистами [Mohd Ridzuan Bistami]

О Подходящая Вам программа называется Screen. Это стандартный инструмент GNU, и он должен иметься в репозиториях Вашего дистрибутива. Screen можно назвать оконным менеджером для терминалов или виртуальным терминалом. Запустите эту программу из терминала; помимо них, она работает и в виртуальной консоли или X-­терминале, и на вид ничего не произойдет. Но на самом деле Ваш терминальный сеанс заменится сеансом Screen; он выглядит так же, как терминальный, и разницы Вы не ощутите, пока не освоите магические трюки этой программы. Запустите команду вывода какой­-нибудь информации – допустим, ls – и нажмите комбинацию клавиш Ctrl+A, затем C. На первый взгляд Вам покажется, что терминальный вывод исчез, однако это заблуждение: Вы просто создали новое окно Screen. Запустите какую­нибудь команду и здесь – скажем, top – и нажмите клавиши Ctrl+A, а затем – Shift+N. Вывод команды top исчезнет, и вместо него появится вывод команды ls. Чтобы переключиться обратно, снова нажмите клавиши Ctrl+A N.

При запуске, Screen открывает единственное окно – в нем вы давали команду ls. Комбинация Ctrl+A – командная последовательность Screen: клавиша, нажатая вслед за ней, воспринимается как команда. Клавишей C создается новое окно, клавиша N переключает на следующее окно, а цифры от 0 до 9 перенесут Вас в окно с соответствующим номером. Итак, Вы создали новое окно, запустили в нем команду, а потом переключились между двумя окнами. Закрывается окно Screen точно так же, как обычный сеанс терминала: командой logout или нажатием комбинации Ctrl+D. После закрытия последнего окна завершится и сама программа.

Первое, что я делаю в Screen сразу же после его установки – добавляю следующие строки в конец файла /etc/screenrc:

# Заголовок в последней строке
caption always “%{= kw}%­w%{= BW}%n%t%{­}%+w %­= @%H ­%LD %d %LM ­%c”

Эти команды добавляют в нижнюю часть всех окон Screen строку состояния, отображающую список окон и имя хоста (что полезно при запуске Screen через SSH). Опции можно помещать в файл /etc/screenrc или в пользовательский файл .screenrc. Помимо прочего, Вы можете изменить комбинацию, переводящую в командный режим, если Вам не по душе клавиши Ctrl+A.

Screen предлагает куда больше возможностей, чем простое создание двух терминалов в одном окне. Например, запустите команду и, не дожидаясь ее завершения, нажмите клавиши Ctrl+A DScreen закроется. Теперь запустите Screen снова, на сей раз с опцией повторного прикрепления [reattach]:

screen ­r

Вы снова увидите свой сеанс Screen, где будет работать все та же команда. Данная возможность неве­ро­ят­но по­лез­на при ра­бо­те с SSH. На­пример, мож­но зай­ти из офи­са на до­машний ком­пью­тер, на­чать за­кач­ку че­го-то боль­шо­го и вый­ти из Screen; а за­груз­ка бу­дет про­дол­жать­ся.

Еще од­на удоб­ная для Вас оп­ция – раз­де­ление эк­ра­нов. Она вклю­ча­ет­ся кла­виа­тур­ной ком­би­наци­ей Ctrl+A, за­тем Shift+S. Ваш от­кры­тый се­анс screen со все­ми его ок­на­ми отъ­е­дет в верх­нюю по­ло­ви­ну тер­ми­наль­но­го ок­на, а ниж­няя опустеет. На­жа­тие Ctrl+A Tab пе­ре­ве­дет Вас в пустую область; на­жми­те кла­ви­ши Ctrl+A C и соз­дай­те в ней но­вое ок­но. У Вас бу­дет два тер­ми­на­ла, ви­ди­мых од­но­вре­мен­но; на­при­мер, с коман­дой tail -f мож­но про­смат­ри­вать файл жур­на­ла и од­но­вре­мен­но запускать коман­ды. Man-страница Screen объ­яс­ня­ет ис­поль­зо­вание этих и мно­гих дру­гих оп­ций данной про­грам­мы. НБ

2 Ча­ст­ный DNS-сер­вер

В В мо­ей до­машней се­ти несколь­ко ком­пью­те­ров. Как соз­дать ча­ст­ный сер­вер DNS для под­держ­ки фик­тив­но­го до­ме­на? Вместо за­по­ми­нания IP-ад­ре­сов, я хо­тел бы об­ра­щаться к мо­им ком­пь­ю­те­рам по име­нам на­по­до­бие larry.mydomain.home, sally.mydomain.home и т. п. У ме­ня есть вы­де­лен­ный Linux-сер­вер с Ubuntu 9.10 Server Edition. Сей­час я ис­поль­зую его как сер­вер для резерв­но­го ко­пи­ро­вания, и на нем ра­бо­та­ет BackupPC (как бы­ло опи­са­но в LXF125).

Джей­сон Ли [Jason Li]

О Про­грам­ма, ко­то­рая Вам нуж­на, на­зыва­ет­ся Dnsmasq (http://www.thekelleys.org.uk/dnsmasq/doc.html). Хо­тя в раз­лич­ных DNS-сер­ве­рах недостат­ка не ощу­ща­ет­ся, дан­ный ва­ри­ант пред­на­зна­чен имен­но для той це­ли, кото­рую Вы се­бе по­ста­ви­ли. Его лег­ко уста­но­вить, он на­де­жен (я сам мно­го лет поль­зу­юсь им в сво­ей се­ти) и вхо­дит в со­став боль­шин­ства ди­ст­ри­бу­тивов Linux, вклю­чая Ubuntu. Dnsmasq ра­бо­та­ет как сер­вер, кэ­ши­рую­щий име­на, и не тре­бу­ет слож­ной про­це­ду­ры на­строй­ки пол­но­мер­ной служ­бы домен­ных имен (в от­ли­чие от Bind).

В про­стей­шем ва­ри­ан­те, про­грам­ма тре­бует ин­фор­ма­ции из двух фай­лов: /etc/resolv.conf и /etc/hosts. Пер­вый со­об­ща­ет, где искать вы­шестоя­щие DNS-сер­ве­ры, и уже пре­достав­ля­ет коррект­ные све­дения, ес­ли Ваш сер­вер под­клю­чен к Ин­тернету. Файл /etc/hosts со­дер­жит спи­сок имен хостов, их псев­донимы и IP-ад­ре­са. Имен­но так Вы и на­страи­ва­ли бы име­на хостов в локальной се­ти, но бла­го­да­ря Dnsmasq доста­точ­но поддер­жи­вать этот файл толь­ко на сер­ве­ре. Фор­мат дан­но­го фай­ла – по стро­ке на хост, на­по­до­бие ад­рес имя псе­вод­ни­мы На­при­мер, с уче­том ва­ших имен вый­дут та­кие стро­ки:

192.168.1.1 larry.mydomain.home larry
192.168.1.2 sally.mydomain.home sally mail.mydomain.home

Вме­сто основ­но­го до­мен­но­го имени до­пускают­ся псев­донимы, и в дан­ном при­ме­ре Вы мо­же­те об­ра­щать­ся к larry.mydomain.home по имени larry, а на ком­пь­ю­тер sally.mydomain.home ссылать­ся как на mail.mydomain.home. Ис­поль­зо­вание до­менных имен в со­от­вет­ствии с вы­пол­няе­мы­ми за­дача­ми уп­ро­ща­ет ор­ганиза­цию и на­строй­ку се­ти. На­при­мер, ес­ли Вы ре­ши­те ис­поль­зовать в ка­че­стве поч­то­во­го сер­ве­ра дру­гой ком­пь­ю­тер, по­тре­бу­ет­ся из­менить файл hosts толь­ко в од­ном месте, а не пе­ре­конфи­гу­ри­ро­вать поч­то­во­го кли­ен­та на ка­ждой из ма­шин.

До­мен­но­му имени совершенно не обяза­тель­но быть фик­тив­ным, так как чтение из фай­ла /etc/hosts про­из­во­дит­ся до об­ра­щения Dnsmasq к сер­ве­рам имен, пе­ре­чис­лен­ным в /etc/resolv.conf. По­этому Вы мо­же­те ис­поль­зо­вать до­мен­ное имя, су­ще­ствую­щее где-ли­бо еще, и поль­зо­вате­ли Ва­шей се­ти по­лу­чат нуж­ный ад­рес из /etc/hosts. Останет­ся толь­ко на­стро­ить все осталь­ные ком­пь­ю­те­ры на ис­поль­зование ва­ше­го но­во­го DNS-сер­ве­ра.

Это про­стей­шее из при­менений Dnsmasq. Ва­ша жизнь еще уп­ро­стит­ся, ес­ли Вы восполь­зуе­тесь встро­ен­ным в Dnsmasq серве­ром DHCP. Когда од­на и та же про­грам­ма присваи­ва­ет IP-ад­ре­са и об­слу­жи­ва­ет их для дру­гих ком­пь­ю­те­ров, уже неза­чем от­сле­жи­вать все адре­са всех ком­пь­ю­те­ров – мож­но обой­тись их имена­ми. Боль­шин­ство ди­ст­ри­бу­ти­вов по умол­чанию на­страи­ва­ют сеть на ис­поль­зо­вание DHCP и от­прав­ля­ют имя хоста в со­ста­ве это­го за­про­са, так что но­вый ком­пь­ю­тер не нуж­но на­страи­вать: доста­точ­но до­ба­вить стро­ку в кон­фи­гу­ра­ци­онный файл Dnsmasq. Но так как этот файл при обнов­лении систе­мы мо­жет быть пе­ре­запи­сан, лучше от­ре­дак­ти­ро­вать файл /etc/dnsmasq.conf, сняв сим­вол ком­мен­та­рия с по­следней стро­ки:

conf-dir=/etc/dnsmasq.d

По­сле это­го мож­но до­ба­вить в ка­кой-ни­будь файл, рас­по­ло­жен­ный в ука­зан­ном ка­та­ло­ге, пример­но сле­дую­щее:

domain=mydomain.home
dhcp-host=larry,192.168.1.1,infinite

Пер­вая стро­ка по­тре­бу­ет­ся толь­ко один раз. Она за­да­ет до­мен, до­бав­ляе­мый ко всем име­нам хостов DHCP. Вто­рая стро­ка вы­де­ля­ет IP-ад­рес 192.168.1.1 ком­пь­ю­те­ру larry на неог­раничен­ный срок. Кроме то­го, мож­но ука­зать MAC-ад­рес се­те­вой кар­ты ком­пь­ю­те­ра. Оп­ре­де­ли­те его, скоман­до­вав sudo ifconfig и най­дя в вы­во­де коман­ды по­ле HWaddr.

Пре­иму­ще­ство дан­но­го под­хо­да в том, что адрес и имя хоста для это­го ком­пь­ю­те­ра со­хра­ня­ются неиз­мен­ны­ми, сколь­ко бы раз­но­об­раз­ных дист­ри­бу­ти­вов Linux (или да­же Windows) Вы на нем ни уста­но­ви­ли. Фор­мат коман­ды –

dhcp-host=01:23:45:67:89:AB,192.168.1.1,larry

Три по­ля, раз­де­лен­ные за­пя­ты­ми, за­да­ют MAC-ад­рес, IP-ад­рес и имя хос­та. Ес­ли у Вас мно­го компь­ю­те­ров и Вам тре­бу­ют­ся на­по­ми­на­ния, кто есть кто, до­бавь­те по­сле ко­ман­ды dhcp-host стро­ку txt-record в сле­дую­щем фор­ма­те:

txt-record=larry,My desktop computer

Пер­вое по­ле – имя хос­та, а вто­рое за­да­ет опи­сание, вы­во­ди­мое в от­вет на DNS-за­прос txt. На­пример, ес­ли Вы за­бы­ли, для че­го у вас ком­пь­ю­тер larry, дай­те та­кую ко­ман­ду:

dig +short larry txt

Она осве­жит Ва­шу па­мять! MC

3 Слияние AVI-фай­лов

В У ме­ня есть несколь­ко ви­део­филь­мов в фор­ма­те AVI, по­ре­зан­ных на несколько фай­лов по­мень­ше. Как объ­е­динить эти фай­лы в один AVI? Пы­тал­ся при­менить для это­го Cat, но по­лу­чен­ный файл воспро­из­во­дит­ся толь­ко до кон­ца пер­вой части.

Джон Уот­сон [John Watson]

О Ви­део­ро­ли­ки AVI со­дер­жат в са­мом нача­ле фай­ла, пе­ред соб­ствен­но кад­ра­ми, дан­ны е офай­ле: его раз­ре­шение, часто­ту кад­ров и дли­тель­ность. Со­единив фай­лы, Вы остави­ли за­го­ло­вок пер­вой части без из­менений, по­тому-то и не мо­же­те про­смот­реть весь но­вый файл це­ли­ком. Иногда для слияния фай­лов ре­ко­мен­дуют при­ме­нять про­грам­му avimerge, но тогда слу­чают­ся про­бле­мы син­хрониза­ции зву­ка и ви­део. Еще один недоста­ток этой про­грам­мы – до­пуска­ет­ся толь­ко фор­мат AVI. Су­ще­ству­ет луч­шее ре­шение – Mencoder, часть па­ке­та MPlayer. Mencoder отлич­но ра­бо­та­ет и принима­ет фай­лы и дру­гих фор­ма­тов, на­при­мер, MPEG и OGG. Для объ­е­динения нескольких фай­лов дай­те сле­дую­щую коман­ду:

mencoder -forceidx -oac copy -ovc copy -o movie.avi movie1.avi movie2.avi ...

Оп­ция -forceidx ве­лит Mencoder пе­ре­стро­ить индекс и ме­та­дан­ные фай­ла. Две сле­дую­щие да­ют ука­зание пе­ре­да­вать ау­дио и ви­део без из­менений (oac и ovc оз­на­ча­ют вы­ход­ной ау­дио- и ви­део­кодек, со­от­вет­ствен­но), а copy – есте­ствен­но, ко­пиро­вание. За­тем идет имя ре­зуль­ти­рую­ще­го фай­ла, а за ним – спи­сок объ­е­ди­няе­мых фай­лов. НБ

4 Из­ме­не­ние раз­де­ла LVM

В Спустя мно­го лет поль­зо­вания дру­ги­ми дист­ри­бу­ти­ва­ми, вер­нул­ся к Mandriva. И я по­тря­сен! Но из-за небреж­но­сти при уста­нов­ке я по­лу­чил сме­хо­твор­но ма­лень­кий раз­дел, и те­перь мне не хва­та­ет места. Не про­бле­ма, поду­мал я: ведь я пре­ду­смот­рел LVM, и те­перь просто уве­ли­чу про­стран­ство для корнево­го раз­де­ла. Од­на­ко об­на­ру­жи­лось, что диск раз­бит на раз­делы сле­дую­щим об­ра­зом:

sda1 -MESH rescue partition
sda2 -Windows 7 NTFS
sda3 -boot partition ext4
sda4 -LVM (containing root, home and swap volumes)

За ними сле­ду­ет ог­ром­ный ку­сок пусто­го, свобод­но­го места. Мне очень нуж­но из­менить разме­ры раз­де­ла LVM, что­бы за­полнить весь диск и по­лу­чить воз­мож­ность вы­де­лять ло­ги­че­ские то­ма. Про­сто соз­дать но­вый раз­дел и до­ба­вить его как до­полнитель­ный фи­зи­че­ский том я не мо­гу, так как Mandriva уже ис­чер­па­ла за­пас пер­вич­ных раз­де­лов. Я не враг команд­ной стро­ки, но не хоте­лось бы уг­ро­бить таб­ли­цу раз­де­лов, ес­ли что-то пой­дет не так.

cmcevoy, во­прос с фо­ру­мов

О Непри­ят­но, что Mandriva по умол­чанию вы­бра­ла ис­поль­зо­вание пер­вич­но­го разде­ла, ме­шая Вам соз­дать но­вые, но изменить раз­ме­ры су­ще­ствую­ще­го раз­де­ла во­все не слож­но. Ри­ск­ну пред­по­ло­жить, что сво­бод­ное про­стран­ство рас­по­ла­га­ет­ся за кон­цом sda4. Если на­ча­ло раз­де­ла останет­ся на прежнем месте, мож­но уда­лить раз­дел, а по­том соз­дать но­вый, поболь­ше, не за­тро­нув его со­дер­жи­мое. Фак­тиче­ски, со­дер­жи­мое останет­ся в неве­дении и бу­дет «счи­тать», что раз­дел име­ет прежние раз­ме­ры.

Что­бы из­менить расклад­ку раз­де­лов, по­требу­ет­ся за­гру­зить­ся с ди­ст­ри­бу­ти­ва Live CD. Для манипу­ли­ро­вания раз­де­ла­ми я применяю cfdisk – эта коман­да да­ет бо­лее чет­кое пред­став­ление ин­фор­ма­ции по сравнению с fdisk; но Вы мо­же­те взять лю­бое при­ло­жение по Ва­ше­му вку­су. Удали­те раз­дел sda4, но не со­хра­няй­те внесен­ных из­менений. За­тем соз­дай­те но­вый раз­дел, ко­торый за­полнит все сво­бод­ное диско­вое про­странство – ту об­ласть, ко­то­рая ранее не ис­поль­зо­валась, плюс об­ласть, ко­то­рая ранее бы­ла за­ня­та sda4; по­сле это­го со­храните таб­ли­цу раз­де­лов.

Те­перь пе­ре­за­гру­зи­те Mandriva и убе­ди­тесь в том, что LVM по-прежнему ра­бо­та­ет. За­пуск vgs и pvs по­ка­жет, что ниче­го не из­менилось. Нуж­но толь­ко из­менить раз­ме­ры фи­зи­че­ско­го то­ма, чтобы они со­от­вет­ство­ва­ли но­вым раз­ме­рам раз­де­ла, коман­дой

pvresize /dev/sda4

Все это де­ла­ет­ся от имени root. По­сле за­вершения сво­бод­ное про­стран­ство бу­дет доступ­но Ва­шей груп­пе то­мов. За­пуск vgs в тер­ми­наль­ном се­ан­се по­ка­жет, что объ­ем сво­бод­но­го про­стран­ства уве­ли­чил­ся. ПХ

5 Два диска в де­ле

В У ме­ня есть ста­рый ком­пь­ю­тер с дву­мя диска­ми SATA объ­е­мом по 500 ГБ и привод DVD-RW. Быв­ший вла­де­лец уста­но­вил на нем Ubuntu Server 7.04. Мне хо­те­лось бы создать но­вую инстал­ля­цию 9.10. Как раз­бить два диска, имею­щих­ся на этом ком­пь­ю­те­ре? Во-вторых, хо­те­лось бы по­лу­чить со­вет по на­строй­ке rsync, что­бы ре­зерв­ное ко­пи­ро­вание дан­ных с перво­го диска вы­пол­ня­лось на вто­рой. Дан­ные на первом диске бу­дут ре­зерв­ны­ми ко­пия­ми со­дер­жи­мого двух дру­гих ком­пь­ю­те­ров, под­клю­чен­ных к мо­ей се­ти (на од­ном из них 64‑раз­ряд­ная Windows Vista, а на дру­гом — Linux Mint 8), же­ла­тель­но вы­полненны­ми BackupPC, как опи­са­но в LXF125.

Ро­нальд Зек [Ronald Zec]

О Спро­сив 10 экс­пер­тов по Linux о том, ка­кая схе­ма раз­биения на раз­де­лы луч­ше, Вы, ско­рее все­го, по­лу­чи­те 10 раз­ных от­ве­тов. Ес­ли Вы хо­ти­те ис­поль­зо­вать вто­рой же­ст­кий диск для ре­зерв­но­го ко­пи­ро­вания содер­жи­мо­го пер­во­го, то все долж­но быть уста­нов­ле­но на пер­вом диске. На сер­ве­ре боль­шая часть дан­ных хранит­ся в ка­тало­ге /var, но для BackupPC ну­жен от­дельный раз­дел. Ес­ли Вы не за­пускае­те ра­бочий стол и все ас­со­ции­ро­ван­ное с ним ПО, то Ваш корневой раз­дел не обя­затель­но дол­жен быть большим.

Основ­ное ре­шение, ко­то­рое Вам нуж­но при­нять на дан­ном эта­пе – сколько про­стран­ства вы­де­лить фай­лам и сколь­ко – BackupPC. В ка­че­стве от­прав­ной точ­ки непло­ха такая кон­фи­гу­ра­ция:

/ 8GB
swap 2GB
/var 200GB
/var/lib/BackupPC 290GB

Об­ра­ти­те внимание, что когда Вы на­зна­чи­те схему раз­биения диска на фи­зи­че­ские раз­де­лы, изменение этой кон­фи­гу­ра­ции в бу­ду­щем зай­мет мно­го вре­мени. По этой при­чине ре­ко­мен­ду­ет­ся ис­поль­зо­вать Logical Volume Management (LVM) и раз­бить диск так, что­бы его един­ствен­ный физи­че­ский раз­дел был по­де­лен на вир­ту­аль­ные тома. Ка­ж­дый том мож­но сде­лать доста­точ­ным для Ва­ших те­ку­щих по­треб­но­стей, а осталь­ное простран­ство фи­зи­че­ско­го раз­де­ла оста­вить невыде­лен­ным. За­тем, ре­шив, что од­на из Ва­ших фай­ло­вых систем тре­бу­ет боль­шего объ­ема дискового про­стран­ства, Вы смо­же­те про­сто уве­ли­чить ее раз­мер. Ин­стал­ля­тор Ubuntu Server да­ет воз­мож­ность вклю­чить LVM в про­цес­се уста­новки систе­мы.

Ес­ли Вы хо­ти­те ис­поль­зо­вать вто­рой диск для ре­зерв­но­го ко­пи­ро­вания, непло­хо бу­дет на­стро­ить его иден­тич­но пер­во­му. Тогда при от­ка­зе пер­во­го диска Вы смо­же­те под­менить его вто­рым. Уста­нови­те для вто­ро­го диска те же фай­ло­вые систе­мы, но смон­ти­руй­те их под дру­гим именем, на­при­мер, /backup. По­сле это­го Вы смо­же­те соз­дать ре­зервные ко­пии фай­ло­вых систем /var и BackupPC с помо­щью сле­дую­щих команд:

rsync -ax --delete /var/ /backup/var/
rsync -ax --delete /var/lib/BackupPC/ /backup/ var/lib/BackupPC/

Од­на­ко эта систе­ма не иде­аль­на. На­при­мер, она не по­мо­жет, ес­ли Вы уда­ли­те не тот файл и не дога­дае­тесь об этом до то­го, как вы­полните оче­редное ре­зерв­ное ко­пи­ро­вание. Аль­тер­на­тив­ный вари­ант – при­ме­нять ути­ли­ты вро­де rdiff-backup, они по­зво­ля­ют восста­нав­ли­вать бо­лее ста­рые вер­сии фай­лов. Но ес­ли Вы поль­зуе­тесь BackupPC, луч­ше при­ме­нять ее для ре­зерв­но­го ко­пи­ро­вания все­го со­дер­жи­мо­го диска, а за­тем ис­поль­зо­вать rsync для пе­ре­но­са на дру­гой диск.

При вы­полнении ре­зерв­но­го ко­пи­ро­вания на дру­гой диск на том же са­мом ком­пь­ю­тере сле­ду­ет иметь в ви­ду еще несколь­ко фактов. Факт первый: аппаратный сбой, особенно блока питания, выведет из строя оба жестких диска. Гораздо безопаснее использовать диск, подключенный к любой другой точке, хотя бы к порту USB на том же компьютере. Факт второй: всегда найдутся люди, которые завопят о применении RAID. Но RAID – не альтернатива резервному копированию, а просто другой способ защиты. Так или иначе, если Вы все же собирае­тесь использовать два внутренних жестких диска и синхронизировать их, RAID действительно обеспечивает уровень защиты, аналогичный тому, что Вы получаете при частой синхронизации, если для резервного копирования применяется BackupPC.

На основании того, что Вы рассказали, я бы разместил операционную систему и данные – предпочтительно с использованием LVM – на первом диске, и применял бы BackupPC для резервного копирования на второй. НБ

6 Эк­ран­ное раз­ре­шение

В Я ис­поль­зую три ком­пь­ю­те­ра, под­клю­ченных к пе­ре­клю­ча­те­лю KVM (не ги­пер­визо­ру!), и они хо­ро­шо ра­бо­та­ют с Windows XP, а так­же с Ubuntu 9.04 и бо­лее ранними вер­сия­ми. А вот с Ubuntu 9.10 и Fedora 12 возник­ла пробле­ма (Fedora 12 я по­про­бо­вал в на­де­ж­де ее решить). Соз­да­ет­ся впе­чат­ление, что ни один из этих но­вых ди­ст­ри­бу­ти­вов не уме­ет чи­тать блок EDID, и эк­ран­ное раз­ре­шение не уста­но­вить вы­ше чем 800  ×  600. Фай­ла xorg.conf нет, и я сгенери­ро­вал его сле­дую­щей коман­дой:

Xorg -configure :1

Эту ре­ко­мен­да­цию я на­шел в LXF117. Кро­ме того, я по­про­бо­вал поль­зо­вать­ся Modeline, как было опи­са­но в ука­зан­ном но­ме­ре жур­на­ла, но X-сервер пе­ре­стал за­пускать­ся, и Modeline при­шлось уда­лить. По­пы­тал­ся до­ба­вить сле­дую­щие стро­ки в раз­дел «Screen»:

SubSection “Display”
Modes “1280x800”
EndSubSection

— но они, по­хо­же, бы­ли про­иг­но­ри­ро­ва­ны. Как добить­ся, что­бы X-сер­вер ра­бо­тал с вы­со­ки­ми экран­ны­ми раз­ре­шения­ми, ес­ли он не чи­та­ет EDID (че­рез пе­ре­клю­ча­тель KVM) и иг­но­ри­ру­ет на­стройки в xorg.conf?

Роб Со­ло­мон [Rob Solomon]

О X-сер­вер иг­но­ри­ру­ет за­дан­ные Ва­ми настрой­ки, так как ду­ма­ет, что Ваш монитор не под­дер­жи­ва­ет раз­ре­шения вы­ше 800 × 600. Бы­ст­ро ре­шить про­бле­му по­мо­жет грубый трюк: под­ключи­те монитор на­пря­мую к компь­ю­те­ру и про­верь­те, мо­жет ли он чи­тать ин­фор­мацию EDID и кор­рект­но на­страи­вать дис­плей. За­тем дай­те коман­ду sudo X -configure Она за­пи­шет су­ще­ст­вую­щую ра­бо­то­спо­соб­ную кон­фи­гу­ра­цию в файл /root/xorg.conf. Про­верьте, что эта кон­фи­гу­ра­ция ра­бо­та­ет – вый­ди­те из X, вой­ди­те в вир­ту­аль­ную кон­соль и дай­те ко­ман­ду

sudo X -config /root/xong.conf

Ес­ли это сра­бо­та­ет, ско­пи­руй­те файл /root/xorg.conf в /etc/X11, и Вы по­лу­чи­те ра­бо­тоспо­соб­ную кон­фи­гу­ра­цию, где вся необ­хо­ди­мая ин­фор­ма­ция на­хо­дит­ся в xorg.conf, а чи­тать данные EDID с са­мо­го монито­ра бу­дет неза­чем.

По­вто­ри­те эту про­це­ду­ру для ка­ж­до­го ком­пью­те­ра, за­тем пе­ре­под­клю­чи­те их че­рез KVM.

7 Софт-модемы и ВМы

В Я купил новый компьютер и установил на него Mandriva 2010, Linux Mint 7 и Windows XP. Однако его программный модем [softmodem] Agere Systems PCI не работает в Mandriva 2010. Я как-то возился с настройкой такого модема при установке Linux, но это было несколько лет и пару компьютеров тому назад, и я ничего не помню, кроме того, что для определения чипсета запускалась специальная программа, а после загрузки драйвера пришлось «покувыркаться» с командной строкой. Не могли бы Вы подсказать мне направление, куда двигаться? Я работаю в Папуа, Новая Гвинея, у меня очень медленное модемное соединение, очень высокие расценки на скачивание, и я не хотел бы долго раскапывать эту информацию в Web.

Еще одна проблема — я пользуюсь VirtualBox, но не могу организовать общий доступ к данным на моей виртуальной машине Windows XP в установленных дистрибутивах Linux. Нельзя ли как-нибудь скопировать файлы на общий раздел?

USB на VirtualBox тоже не работает, так что файлы не переместить и таким путем. Как активизировать USB?

Дэрил Брентон [Daryl Brenton]

О Местом Вашей «первой остановки» должен быть сайт http://linmodems.org: там описано все, что необходи­мо знать об использовании программных модемов, известных также под названием «модемов Windows» [winmodems]. Сайт ориентирован на пользователей, выходящих в Интернет по коммутируемым каналам, он мало использует графику, и должен загружаться очень быстро. На нем имеется прямая ссылка для скачивания утилиты ScanModem – скорее всего, это и есть нужный Вам инструмент: http://132.68.73.235/linmodems/index.html#scanModem. Коммутируемый доступ и медленный, и стоит дорого; попробуйте вариант с широкополосным мобильным доступом 3G. Даже при мобильном сигнале среднего качества Вы получите производительность выше, чем у телефонного соединения, и это будет более рациональным вложением средств. Большинство провайдеров используют один и тот же тип модема (Huawei), разве что иногда с другой надписью, и Linux поддерживает эти устройства вполне прилично.

По второму вопросу: виртуальные машины отделены от операционной системы машины­-хоста, и обычно не имеют прямого доступа к дискам компьютера или других виртуальных машин. Однако в сети они видятся как самостоятельные компьютеры; поэтому лучше всего предоставить в общий доступ Ваш системный раздел Windows XP (обычно – диск C:). Щелкните правой кнопкой мыши по значку Мой компьютер [My Computer] и выберите из меню команду Общий доступ [Sharing], а затем примонтируйте этот диск в хост­среде Linux. Большинство дистрибутивов Linux и вариантов рабочего стола имеют обозреватель, позволяющий обнаруживать тома Windows, предоставленные в общий доступ, и монтировать их с других компьютеров, расположенных в Вашей сети.

Общий доступ, организованный таким образом, должен работать без добавочного ПО. Но чтобы сделать то же самое из Linux-­хоста для гостевой операционной системы Windows, потребуется установить и сконфигурировать на Linux­-хосте Samba. Соответствующий учебник можно найти в LXF117.

Наконец, VirtualBox позволить Вам активизировать и использовать устройства USB, но только если у Вас есть двоичный вариант сборки – поддержка USB была исключена из версии с открытым кодом. Проверьте, какой вариант дистрибутива установлен у Вас, потому что, возможно, придется удалить его и заново установить из другого источника. Это может быть другое имя пакета, другой репозиторий или версия, доступная для загрузки с сайта http://www.virtualbox.org/wiki/Downloads.

8 Дистрибутивы не равны

В Внастоящий момент я осваиваю Linux, и мне очень нравится экспериментировать с разными дистрибутивами. Недавно я без всяких проблем создал на своем ноутбуке конфигурацию с двойной загрузкой — Windows 7 и Linux Mint, и все работало замечательно. Прочитав обзоры в вашем журнале, я решил попробовать OpenSUSE и установил этот дистрибутив поверх Mint. Но, похоже, на моем ноутбуке (Dell Latitude D531, довольно распространенная модель) нет драйверов беспроводной сети. Попытка поисков в Интернете тоже оказалась неудачной. Выходит, старая версия Mint работает хорошо, а вот новая хваленая версия OpenSUSE — нет. Правильно я понимаю?

А если да, то в чем дело — я думал, что основная идея была в том, чтобы абсолютно все было открытым и свободно доступным. Так почему парни из команды OpenSUSE не приложили рук к вещам, которые существуют давно, известны всем и считаются полезными? Конечно, можно вернуться обратно к Mint (не исключено, что так я и поступлю), но не дадите ли вы мне какой-нибудь совет, пока я не принял окончательное решение?

Роб Дэйвенпорт [Rob Davenport]

О Одна из причин, по которым не все дистрибутивы поддерживают одно и то же оборудование, кроется в доступности драйверов и условиях лицензирования. Поставщи­ки крупных коммерческих дистрибутивов, к которым относится и SUSE, должны соблюдать осторожность, включая что бы то ни было в состав системы. Если драйвер не абсолютно свободен (т.е. не является открытым и имеет ограничения на распространение), они могут не поместить его в репозиторий. Именно поэтому Linux Mint имеет две версии: одну – для загрузки, и вторую, несколько более ограниченную – для коммерческого распространения.

Загружаемая версия содержит ПО, которое может быть не полностью свободным – а то и нелегальным в стране вашего проживания. То же относится и к таким вещам, как воспроизведение зашифро­ванных DVD или даже файлов MP3. Хотя дистрибутивы и не включают необходимых файлов непосредственно, они обычно доступны из дополнительного репозитория через менеджер пакетов конкретного дистрибутива.

В Вашем случае, скорее всего, проблема в беспроводной сетевой карте Broadcom BCM94311MCG. Для проверки запустите в терминале от имени root команду lspci. Хотя ядро включает драйвер b43 для этого устройства, ему также необходим файл прошивки, а тот в состав дистрибутива по названным причинам не входит. Чтобы решить этот вопрос, подключите свой компьютер к сети с помощью кабеля Ethernet, откройте терминальный сеанс и дайте команду

sudo /usr/sbin/install_bcm43xx_firmware

Файл прошивки загрузится и установится. Возможно, для появления беспроводного подключения придется перезагрузиться. ГМ

9 Окно в Интернет

В На моем компьютере установлена 64-битная ОС Ubuntu 9.04 и виртуальная машина VirtualBox, в которой работает ОС Windows XP SP2. На компьютере с Ubuntu есть подключение к Интернету. Как средствами Ubuntu соединить два сетевых интерфейса (виртуальный vboxnet0 и реальный eth0) в сетевой мост, чтобы Интернет был и в Windows XP? Есть ли другой вариант попроще?

Rewer8

О Разумеется, есть: Вам просто нужно выбрать в качестве типа виртуального сетевого интерфейса VirtualBox (Сеть > Тип подключения) «NAT». В результате Windows в гостевой машине окажется примерно в такой же ситуации, как настоящий домашний компьютер за Wi­Fi-­маршрутизатором.

Организовать мост также нетрудно: для этого нужна команда brctl, обычно входящая в состав пакета bridge-utils. Создайте мост командой sudo brctl addbr br0, затем добавьте в него интерфейсы (sudo brctl addif br0 eth0 и sudo brctl addif br0 vboxnet0). Переведите сетевые интерфейсы в неразборчивый [promiscuous] режим командами sudo ifconfig имя_интерфейса 0.0.0.0 promisc up и настройте br0 как обычную сетевую карту. Однако в большинстве случаев NAT будет оптимальным решением. Единственная ситуация, с которой он не справится – это предоставление прямого интернет­доступа к сервисам в виртуальной копии Windows XP, что само по себе не лучшая идея. ВС

10 Как использовать телефон под управлением Android в качестве модема 3G?

В У меня есть мобильный телефон, работающий под управлением Android, и «безлимитный» пакет 3G. Как я могу этим воспользоваться, чтобы подключить свой ноутбук к Интернету и не переплачивать за другой пакет и 3G-модем?

Мартин Уэллс [Martin Wells]

О Большинство смартфонов умеют работать модемами; обычно для этой цели требуется соединение через USB или Bluetooth. В стандартной системе Android это невозможно, потому что для этого необходим доступ с привилегиями root. Однако доступ с привилегиями root к телефону Android можно получить без особых проблем, как показывает быстрый поиск в Web. Единственное, о чем умалчивают web­-страницы – это проблемы с безопасностью из­за полного доступа root ко всем приложениям, работающим на телефоне. Серьезно подумайте, то ли это, что Вам нужно, потому что существует и альтернатива: программа Proxoid, которая превращает Ваш телефон Android в прокси­сервер Web. Набор разработчика Android (Developer Kit) содержит ПО для отправки TCP­запросов на телефон через USB­-кабель.

На своем телефоне установите Proxoid через Android Market. Чтобы телефон поддерживал связь с компьютером через USB, надо активизировать отладку USB. На домашнем экране выберите команды Меню > Настройки > Приложения > Разработка [Menu > Settings > Applications > Development] и включите опцию Отладка USB [USB debugging]. Затем запустите и активизируйте Proxoid. На компьютере, чтобы он распознал Ваш телефон, нужно выполнить настройку: подключите устройство через USB, скомандуйте sudo lsusb и поищите запись для своего телефона (если Вы не уверены, запустите команду дважды: при подключенном и отключенном телефоне).

Вы увидите идентификатор (ID); за ним идут два шестнадцатеричных числа – идентификаторы производителя и продукта. Так, у нас это были

Bus 001 Device 003: ID 22b8:41db Motorola PCS

Затем создайте файл /etc/udev/rules.d/11-android.rules от имени root и добавьте в его состав следующую строку:

SUBSYSTEMS==”usb”, SYSFS{idVendor}==”22b8”,
SYSFS{idProduct}==”041db”, MODE=”0666”,
OWNER=”ваше_имя_пользователя”

Замените эти коды на соответствующие Вашему телефону и укажите свое имя пользователя. Теперь при подключении телефона владельцем узла устройства, создаваемого udev, будете Вы.

Затем потребуется установить Android SDK. Если он есть в репозитории Вашего дистрибутива, добавьте его стандартным образом; если нет, загрузите пакет с адреса http://develoPer.android.com/sdk – это файл .tar.gz. Распакуйте ПО где­нибудь в пределах Вашего домашнего каталога, запустите терминал, перейдите в каталог android-sdk-linux_86/tools и дайте команду ./adb forward tcp:8080 tcp:8080 Запрос на TCP­соединение будет перенаправлен через порт 8080 компьютера на порт 8080 телефона, где по умолчанию работает Proxoid (при желании, эту настройку можно изменить средствами Proxoid). Теперь остается только настроить Ваш браузер для использования прокси­-сервера на порту 8080 локального хоста, после чего все его запросы будут проходить через телефон. Когда Вам потребуется переключиться обратно на обычное интернет-соединения, просто отключите прокси в Вашем браузере.

Шаг за шагом: Настройка модема Android

Шаг 1

  • 1 Установка Proxoid
Первый шаг – установка приложения Proxoid. На своем телефоне найдите Proxoid в репозитории Android Market и установите его.

Шаг 2

  • 2 Активизация отладки USBэээ
Далее, выберите на телефоне опции Applications > Development и активизируйте отладку USB.

Шаг 3

  • 3 Настройка udev
Перейдите на свой компьютер и воспользуйтесь командой lsusb, чтобы найти идентификаторы вашего телефона. Затем создайте правило udev, чтобы распознать его при следующем подключении.

Шаг 4

  • '4 Установите SDK
Воспользуйтесь менеджером пакетов либо возьмите tar-архив и распакуйте в удобном месте (точное местоположение роли не играет).

Шаг 5

  • 5 Настройка браузера
Настройте браузер так, чтобы в качестве прокси-сервера использовался localhost:8080, но вашу локальную сеть отсюда следует исключить.

Шаг 6

  • 6 Настройка Proxoid
Параметры по умолчанию вполне годятся, однако Proxoid можно и перенастроить – например, указав для прослушивания другой порт.

Часто задаваемые вопросы rsync и Unison

  • Что это за программа rsync, о которой все болтают?
Это способ синхронизации содержимого двух директорий, причем обе будут полностью идентичны.
  • А что, нельзя применить для этого cp?
cp копирует все подряд. rsync – только те файлы, которые различаются. Если изменились большие файлы, копируются только измененные части.
  • Как ею пользоваться?
rsync ­­archive ­­delete /путь/к/источнику/ /путь/к/назначению/ создаст точную копию первой директории во второй. Параметр ­­delete удаляет файлы, которых нет в первой директории, а ­­archive копирует также права доступа и временные отметки. Замыкающие слэши важны для rsync: они указывают, что вы хотите синхронизировать содержимое директорий. Без слэшей программа просто скопирует одну директорию в другую.
  • Можно ли синхронизировать директории разных компьютеров?
При наличии SSH-­доступа к web-­серверу, можно сделать так:
rsync ­­archive ­­delete имя_сервера:/путь/к/сайту/
Если один из путей или оба содержат имя компьютера­хоста, rsync использует для передачи удаленную оболочку. По умолчанию это SSH, но можно заменить ее любой другой.
  • Что если я изменю файлы на двух компьютерах и захочу обновить оба?
Вам необходима программа, разработанная специально для этой цели, например, Unison (http://www.cis.upenn.edu/~bcpierce/unison/). Unison использует rsync и SSH, так что вы сохраните все вышеперечисленные преимущества; но при этом предназначается для двусторонней синхронизации. Если вы изменили несколько файлов на одном компьютере и еще несколько на другом, то Unison гарантирует, что на каждом компьютере у вас будет храниться новейшая версия.
  • А если я отредактирую один и тот же файл на обоих компьютерах?
Unison не может читать ваши мысли и определять, какую версию вы хотите сохранить. Но программа сообщит вам, что изменились оба файла, и спросит, какую из версий вы хотите использовать.
  • Небось надо заучить сотни опций командной строки?
Да, надо. Или пользуйтесь графическим интерфейсом. Он нужен только на ком­пьютере, инициирующем передачу, поэтому вы по­прежнему сможете применять программу для синхронизации с удаленной машиной, где есть Unison.

Коротко про... top

Top покажет, какая программа отнимает сколько ресурсов памяти и процессора.


Случалось ли вам обнаружить, что ваш компьютер тормозит, утратил отзывчивость или «стрекочет» жестким диском, и недоумевать о причинах такого поведения? В следующий раз запустите в терминале Top. Эта программа предоставляет большой объем информации в очень сжатом формате.

Верхняя часть экрана отображает системную статистику: время работы компьютера, число пользователей, количество выполняющихся задач и т.д. Далее, программа выводит общую загрузку процессора, распределенную между пользовательскими программами (us), системными операциями (sy), программами, сменившими свой приоритет (ni), простаивающими (id) и процессами, находящимися в ожидании (wa).

Очевидно, простаивающие процессы относятся не столько к использованию, сколько к неиспользованию, и это число показывает доступный объем свободных ресурсов процессора.

Число, относящееся к ожидающим программам, показывает процессы, которые задерживаются из­за ожидания наступления какого­нибудь другого события – обычно ввода/вывода на диск.

Ниже приведен список работающих задач, отсортированный по нагрузке на процессор. Он покажет, которая программа забирает все циклы CPU. Нажмите клавиши Shift+F, чтобы изменить сортировку этого списка по использованию, например, памяти.

Top не только показывает процессы, но и способен менять их. Например, чтобы завершить процесс, нажмите клавишу K [kill]; а чтобы сменить приоритет процесса, нажмите клавишу R [renice]. Увеличение значения nice [«вежливости»] для программы делает ее уступчивее по отношению к другим процессам («только после вас») и менее алчной до циклов CPU.

Команды kill и renice требуют указать идентификатор процесса (process ID, PID), как показано в левом столбце. Если вы ука­жете неверный идентификатор, это чревато катастрофой. Но при запуске Top в X-­терминале можно дважды щелкнуть мышью на PID нужного Вам процесса и нажать среднюю кнопку мыши, чтобы скопировать его и избежать недоразумений.

Top предлагает намного больше опций, к большинству из которых можно получить доступ нажатием единственной клавиши. Самая важная клавиша – H [help], она отображает онлайн­справку о программе.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию