Журнал LinuxFormat - перейти на главную

LXF158:Ответы

Материал из Linuxformat
Перейти к: навигация, поиск


Содержание

Ответы

Есть вопрос по от­кры­то­му ПО? Пишите нам по адресу answers@linuxformat.ru, и мы най­дем от­вет.

В этом месяце мы ответим на вопросы про...

1 Вы­клю­че­ние сис­те­мы в VirtualBox

2 Cent OS и мо­биль­ный ши­ро­ко­по­лос­ный дос­туп

3 За­мед­ле­ние про­цесса за­груз­ки

4 Пе­ре­да­чу дан­ных при посредстве rsync

5 Ошиб­ку, закрав­шуюся в DVD LXF

6 Уве­ли­че­ние раз­ме­ра раз­де­ла

Наши эксперты

Мы по­ды­щем экс­пер­та на лю­бой ваш во­прос. От уста­нов­ки и про­блем с мо­де­мом до ад­минист­ри­ро­вания се­ти — от­вет най­дет­ся! Про­сто на­пи­ши­те нам бу­маж­ное или элек­трон­ное пись­мо, и о нем по­за­бо­тят­ся.

Нейл Ботвик. Побыв владельцем ISP и редак­то­ром дисков для нашего журнала, Нейл считает, что в Linux он от скуки на все руки.

Джо­на­тан Ро­бертс. Джо­на­тан столь­ко от­лы­ни­вал от за­ня­тий ради ус­та­нов­ки, на­строй­ки и взло­ма сер­ве­ров, что те­перь он экс­перт.

Майк Сондерс. Майк был одним из создателей прототипа LXF – Linux Answers. Его специальности – программирование, оконные менеджеры, скрипты инициализации и SNES.

Грэм Моррисон. Когда Грэм не обозревает кучи программного обеспечения и не халтурит с MythTV, он готов к ответам насчет любого оборудования и проблем виртуализации.

Валентин Синицын. В редкие свободные минуты Валентин обычно запускает mcedit, чтобы отшлифовать какое-нибудь открытое приложение. Его любимая тема – настольный Linux.

Юлия Дронова. Если компьютер у Юлии не занят выполнением команды emerge, она спешит применить его для модерирования www.unixforum.org.

КУДА ПОСЫЛАТЬ ВОПРОСЫ

Пишите нам по адресу answers@linuxformat.ru или спрашивайте на форуме: www.linuxformat.ru

1 Вир­ту­аль­ное вы­клю­че­ние

В Я вир­туа­ли­зи­ро­вал стек LAMP на ба­зе XP Pro. Я за­пускаю эту сис­те­му в ка­че­­ст­ве госте­вой на SUSE 12.1 с VirtualBox 4.1.8 и KDE 4.7.2. Мне нуж­но га­ран­ти­ро­вать, что­бы вся сис­те­ма, вклю­чая вир­ту­аль­ный сер­вер, за­пуска­лась при вклю­чении пи­тания и кор­рект­но вы­клю­ча­лась. При вклю­чении пи­тания я за­пускаю ее в KDE с по­мо­щью auto-login. Для ав­то­ма­ти­че­­ско­­го за­пуска госте­вой ОС на мо­ем ра­бо­чем сто­ле я по­мес­тил скрипт в ~home/myname/.kde4/Autostart. По­ка все хо­ро­шо, и он ра­бо­та­ет. Я не за­пускаю его «без го­ло­вы», так как хо­чу иметь бы­ст­рый доступ к ра­бо­че­му сто­лу сер­ве­ра XP Pro. Те­перь о про­бле­ме. При по­пыт­ке вклю­чить сис­те­му или хо­тя бы вый­ти из сис­те­мы, VirtualBox спра­ши­ва­ет, что я хо­чу сде­лать с госте­вой сис­те­мой, и тут же пре­кра­ща­ет ра­бо­ту. А мне нуж­но кор­рект­но за­вер­шить ра­бо­ту госте­вой ОС, так как в ней боль­шая ба­за дан­ных MySQL.

Я пы­тал­ся до­ба­вить скрипт в ~home/myname/.kde4/shutdown, но по­хо­же, что VirtualBox опе­ре­жа­ет его в це­поч­ке со­бы­тий вы­клю­чения. Как за­ста­вить KDE за­вер­шить ра­бо­ту сис­те­мы или вый­ти из сис­те­мы так, что­бы VirtualBox по­нял, что нуж­но от­пра­вить стан­дарт­ный сиг­нал вы­клю­чения ACPI госте­вой ОС? На пер­вый взгляд это про­сто, но я уве­рен, что это не так.

Дэ­вид Го­уд­би [David Goadby]

О Вам нуж­на VBoxManage, ути­ли­та команд­ной стро­ки, с по­мо­щью ко­то­рой мож­но управ­лять VirtualBox с тер­ми­на­ла или, в дан­ном слу­чае, за­пускать скрипт вы­клю­чения сис­те­мы.

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

Для на­ча­ла оп­ре­де­ли­те свои вир­ту­аль­ные ма­ши­ны, ко­ман­дой

VBoxManage list vms

ко­то­рая вы­ве­дет при­мер­но та­кой спи­сок:

“WinXP” {d546c405-6a1c-4bb9-9ffbf1ccec59dffd}

“Mint 12” {4d7daa80-5473-4454-b974-7048f5c4394c}

Вир­ту­аль­ную ма­ши­ну мож­но оп­ре­де­лить по ее имени или по UUID (длин­ная стро­ка в фи­гур­ных скоб­ках), но ес­ли ис­поль­зу­ет­ся имя, и в нем есть про­бе­лы, оно долж­но быть за­клю­че­но в ка­выч­ки.

Те­перь мож­но приоста­но­вить вир­ту­аль­ную ма­ши­ну XP ко­ман­дой

VBoxManage controlvm “WinXP” savestate

или

VBoxManage controlvm d546c405-6a1c-4bb9-9ffb-f1ccec59dffd savestate

Дей­ст­ви­тель­но ум­но бы­ло бы на­пи­сать скрипт, приоста­нав­ли­ваю­щий все за­пу­щен­ные вир­ту­аль­ные ма­ши­ны.

for VM in $(VBoxManage list runningvms |

awk ‘{print $NF}’); do

VBoxManage controlvm $VM savestate

done

Приоста­нов­лен­ную вир­ту­аль­ную ма­ши­ну мож­но пе­ре­за­пустить обыч­ным об­ра­зом или с по­мо­щью VBoxManage в скрип­те за­пуска:

VBoxManage startvm “WinXP”

Для это­го не нуж­но за­пускать гра­фи­че­­ский ин­тер­фейс VirtualBox: VBoxManage за­пустит вир­ту­аль­ную ма­ши­ну на­пря­мую. Вы уже об­на­ру­жи­ли, что при вы­хо­де из сис­те­мы KDE за­пуска­ет все из ~/.kde4/shutdown. Ре­шение – восполь­зо­вать­ся скрип­том вы­клю­чения сис­те­мы, ко­то­рый со­хранит вир­ту­аль­ную ма­ши­ну и за­тем ве­лит KDE вый­ти из сис­те­мы.

VBoxManage controlvm “WinXP” savestate

qdbus org.kde.ksmserver /KSMServer logout 0 0 0

Мо­жет по­на­до­бить­ся вста­вить ко­ман­ду sleep ме­ж­ду эти­ми дву­мя ко­ман­да­ми, что­бы дать вир­ту­аль­ной ма­шине вре­мя на со­хранение. Ес­ли от­крыт гра­фи­че­­ский ин­тер­фейс VirtualBox, его так­же мож­но за­крыть (ес­ли боль­ше ниче­го не по­мо­жет, killall VirtualBox сде­ла­ет эту ра­бо­ту). Ко­ман­да qdbus от­прав­ля­ет KDE за­прос на вы­ход из сис­те­мы. Ес­ли вы хо­ти­те за­вер­шить ра­бо­ту сис­те­мы, а не вый­ти из нее, из­мените 0 0 0 на 0 2 2. Мо­же­те свя­зать этот скрипт с го­ря­чей кла­ви­шей, с пунк­том ме­ню или с икон­кой на ра­бо­чем сто­ле, дав им под­хо­дя­щее имя.

2 Мо­биль­ный 3G-доступ

В Не­дав­но я уста­но­вил CentOS 6 с од­но­го из ва­ших DVD на свой но­ут­бук с двой­ной за­груз­кой с Windows Vista. У ме­ня есть 3G-мо­дем от T-Mobile, ко­то­рый в Windows Vista на­стро­ил­ся ав­то­ма­ти­че­­ски. Как за­ста­вить его ра­бо­тать в CentOS?

Не­дав­но в Linux Format поя­ви­лось пись­мо про DVD, при­ла­гае­мый к жур­на­лу. По­жа­луй­ста, по­жа­луй­ста, не от­ка­зы­вай­тесь от DVD. Воз­мож­но­сти за­груз­ки фай­лов по 3G-со­единению про­сто жал­кие, и це­лый ди­ст­ри­бу­тив за­гру­зить труд­но.

Кен Ур­вин [Ken Urwin]

О Это рас­про­странен­ная про­бле­ма, и с CentOS с ней при­дет­ся по­во­зить­ся немно­го боль­ше. USB-мо­де­мы ис­поль­зу­ют спе­ци­аль­ный при­ем, что­бы не поль­зо­вать­ся драй­ве­ром CD в Windows. Когда вы встав­ляе­те флэш­ку, она оп­ре­де­ля­ет­ся как ком­пакт-диск, с ко­то­ро­го за­пуска­ет­ся уста­нов­щик для Windows. По­сле уста­нов­ки драй­ве­ры оп­ре­де­ля­ют один из этих псев­до-CD и пре­вра­ща­ют его в мо­дем. Это мож­но уви­деть в Linux, когда при под­клю­чении мо­де­ма об­на­ру­жи­ва­ет­ся но­вый ком­пакт-диск, ко­то­ро­му со­от­вет­ст­ву­ет не по­сле­до­ва­тель­ное уст­рой­ст­во мо­де­ма, а /dev/ttyUSB0. Ес­ли это­го уст­рой­ст­ва не су­ще­ст­ву­ет, нуж­но при­ка­зать мо­де­му, что­бы он пе­ре­стал вес­ти се­бя как CD и стал са­мим со­бой. Обыч­но это мож­но сде­лать вруч­ную, по­пы­тав­шись из­влечь ком­пакт-диск. Это­му ком­пакт-дис­ку обыч­но со­от­вет­ст­ву­ет уст­рой­ст­во /dev/sr1 (/dev/sr0 – на­стоя­щий при­вод CD), по­это­му с по­мо­щью ко­ман­ды

sudo eject /dev/sr1

вы смо­же­те из­ба­вить­ся от CD и уви­деть уст­рой­ст­во /dev/ttyUSB0. Вы вряд ли за­хо­ти­те де­лать это ка­ж­дый раз при под­клю­чении мо­де­ма, и есть про­грам­ма, ко­то­рая бу­дет де­лать это ав­то­ма­ти­че­­ски, вы­пол­няя поч­ти те же функ­ции, что и драй­ве­ры Windows (драй­ве­ры яв­ля­ют­ся ча­стью яд­ра, по­это­му их уста­нав­ли­вать не при­дет­ся).

Эта про­грам­ма – usb_modeswitch (http://www.draisberghof.de/usb_modeswitch); в CentOS па­ке­та для нее нет, и при­дет­ся уста­но­вить ее вруч­ную. Во-пер­вых, зай­ди­те в Ус­та­нов­ку и уда­ление про­грамм [Add/Remove Software] и убе­ди­тесь, что уста­нов­ле­ны все за­ви­си­мо­сти – вам по­на­до­бят­ся libusb и libusb-devel. Так­же по­на­до­бит­ся уста­но­вить gcc, так как за­гру­жае­мый па­кет – это ис­ход­ный код, тре­бую­щий ком­пи­ля­ции. За­гру­зи­те usbmodeswitch-1.2.3.tar.bz2 и usbmodeswitch-data-20120120.tar.bz2 с сай­та usb_modeswitch. Это по­следние вер­сии на мо­мент на­пи­сания ста­тьи – на мо­мент ее чтения там мо­гут быть вер­сии по­све­жее; тогда возь­ми­те их. Рас­па­куй­те ар­хи­вы и уста­но­ви­те их, за­пустив в тер­ми­на­ле сле­дую­щие коман­ды:

su

tar xf usb-modeswitch-1.2.3.tar.bz2

tar xf usb-modeswitch-data-20120120.tar.bz2

cd usb-modeswitch-1.2.3

make install

cd ../usb-modeswitch-data-20120120

make install

exit

Пер­вая ко­ман­да пе­ре­клю­ча­ет вас в ре­жим ад­минист­ра­то­ра. Для уста­нов­ки нуж­ны при­ви­ле­гии ад­минист­ра­то­ра; в некоторых дру­гих ди­ст­ри­бу­ти­вах для это­го пе­ред ка­ж­дой ко­ман­дой при­дет­ся пи­сать sudo. В двух сле­дую­щих стро­ках рас­па­ко­вы­ва­ют­ся за­гру­жен­ные ар­хи­вы с про­грам­мой и с дан­ны­ми, ка­ж­дый в свой соб­ст­вен­ный ка­та­лог. За­тем мы за­хо­дим в ка­та­лог про­грам­мы и вы­пол­ня­ем ко­ман­ду make install – она ком­пи­ли­ру­ет и уста­нав­ли­ва­ет про­грам­му. По­сле это­го мы пе­ре­хо­дим в ка­та­лог с дан­ны­ми и уста­нав­ли­ва­ем их. В по­следней стро­ке мы вы­хо­дим из ре­жи­ма ад­минист­ра­то­ра.

По­сле это­го все долж­но за­ра­бо­тать. Вставь­те USB-мо­дем, и долж­но поя­вить­ся уст­рой­ст­во /dev/ttyUSB0, а в ме­ню Network Manager (Менед­жер се­ти) долж­на поя­вить­ся воз­мож­ность на­строй­ки мо­биль­но­го со­единения.

3 Тор­мо­зим за­груз­ку

В В по­следних но­ме­рах вы ре­гу­ляр­но пи­са­ли об уско­рении за­груз­ки; а не мог­ли бы вы, для рав­но­ве­сия, рас­ска­зать, как за­мед­лить за­груз­ку? Во мно­гих све­жих сис­те­мах я про­сто не успе­ваю про­честь за­гру­зоч­ные со­об­щения. В этом слу­чае обыч­но со­ве­ту­ют чи­тать dmesg, но с ним есть две про­бле­мы.

Во-пер­вых, ес­ли за­груз­ка оста­нав­ли­ва­ет­ся в ре­зуль­та­те ошиб­ки, dmesg не соз­да­ет­ся; во-вто­рых, при во­зоб­нов­лении за­груз­ки един­ст­вен­ное клю­че­вое сло­во, ко­то­рое я успе­ваю про­честь, когда оно мель­ка­ет на эк­ране, ка­жет­ся, никогда не по­па­да­ет в dmesg. Иногда мне по­мо­га­ет па­ра­метр яд­ра exit, но нет ли бо­лее об­ще­го ме­то­да от­сле­жи­вания оши­бок?

Се­сил Уол­лис [Cecil Wallis]

О Ес­ли вслед­ст­вие паники яд­ра за­груз­ка пол­но­стью оста­нав­ли­ва­ет­ся, то ошиб­ка обыч­но со­дер­жит­ся в несколь­ких по­следних со­об­щениях на эк­ране. Панику яд­ра вы­зы­ва­ет что-то серь­ез­ное – по­сле возник­но­вения та­кой ошиб­ки про­цесс за­груз­ки да­ле­ко не уй­дет. Ес­ли за­груз­ка за­вер­ша­ет­ся успеш­но, пер­вым де­лом и прав­да нуж­но за­гля­нуть в dmesg. Ее вы­вод мож­но про­пустить че­рез less:

sudo dmesg | less

В кон­со­ли вы можете про­кру­чи­вать текст на­зад при по­мо­щи Shift + PageUp, но при пе­ре­клю­чении на дру­гую вир­ту­аль­ную кон­соль бу­фер про­крут­ки очи­ща­ет­ся – по­это­му за­пуск X-сер­ве­ра и пе­ре­клю­чание об­рат­но с по­мо­щью Ctrl+Alt+F1 вас не спасет.

Луч­ший под­ход при от­лад­ке та­кой про­бле­мы – от­клю­чение X-сер­ве­ра. Соб­ст­вен­но го­во­ря, луч­ше от­клю­чить мак­си­маль­но воз­мож­ное ко­ли­че­­ст­во сер­ви­сов.

Это не толь­ко по­зво­ля­ет вы­явить при­чи­ну ошиб­ки, но и очи­стит кон­соль, dmesg и файл сис­тем­но­го жур­на­ла от по­сто­ронних со­об­щений. Ес­ли за­груз­ка до­хо­дит до за­пуска сис­тем­но­го лог­ге­ра, про­верь­те основ­ной лог-файл, обыч­но это /var/log/messages или /var/log/current в за­ви­си­мо­сти от лог­ге­ра, ис­поль­зуе­мо­го ва­шим ди­ст­ри­бу­ти­вом. По­лез­ный при­ем – за­пустить ко­ман­ду:

ls -lrt /var/log

Она вы­ве­дет спи­сок фай­лов в ка­та­ло­ге с лог-фай­ла­ми, от­сор­ти­ро­ван­ный по да­те – нуж­ная вам ин­фор­ма­ция ско­рее все­го бу­дет на­хо­дить­ся в по­следних фай­лах.

По­следний ва­ри­ант – вой­ти в ин­те­рак­тив­ный ре­жим во вре­мя за­груз­ки. Ес­ли у вас нет за­став­ки и вы ви­ди­те за­гру­зоч­ные со­об­щения, долж­но поя­вить­ся что-то вро­де «Press I to enter interactive mode [На­жми­те I для вхо­да в ин­те­рак­тив­ный ре­жим]».

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

4 Мас­со­вая пе­ре­сыл­ка

В Как бы­ст­рее все­го ско­пи­ро­вать 1 ТБ дан­ных с од­но­го же­ст­ко­го дис­ка на дру­гой по USB? Мне нуж­но ско­пи­ро­вать ви­део с NAS, ко­то­рый ре­шил сбро­сить свои на­строй­ки, но лю­без­но от­фор­ма­ти­ро­вал свой же­ст­кий диск(и) в ext3.

Я хо­чу под­клю­чить же­ст­кий диск NAS к сво­ему MythBox че­рез адап­тер SATA ->USB. Как бы­ст­рее все­го ско­пи­ро­вать эти дан­ные?

В иде­аль­ном слу­чае, смог бы я пе­ре­вес­ти за­да­чу в фо­но­вый ре­жим, вре­мя от вре­мени про­ве­ряя ее со­стояние: rsync, cp или Ctrl + C, Ctrl + V на ра­бо­чем сто­ле в фай­ло­вом менед­же­ре Thunar?

bobthebob1234, с фо­ру­мов

О Сра­зу ска­жем, что бы­ст­рее сде­лать это невоз­мож­но: ско­рость ог­раниче­на ши­ной, ис­поль­зуе­мой для пе­ре­да­чи (USB), а не про­грам­ма­ми, ра­бо­таю­щи­ми с ней. Од­на­ко про­ще все­го это сде­лать с по­мо­щью rsync:

rsync -a /path/to/source/ /path/to/dest/

Она ко­пи­ру­ет все из ис­точника (/path/to/source) в ме­сто на­зна­чения (/path/to/dest), со­хра­няя все ат­ри­бу­ты, в том чис­ле вре­мен­ные мет­ки ка­та­ло­гов, че­го нель­зя до­бить­ся с по­мо­щью дру­гих спо­со­бов ко­пи­ро­вания.

А глав­ное досто­ин­ст­во, по­жа­луй, в том, что пе­ре­да­чу с rsync мож­но во­зоб­но­вить, ес­ли она по­че­му-ли­бо пре­рва­лась. Про­сто за­пусти­те ко­ман­ду сно­ва, и rsync про­ана­ли­зи­ру­ет со­дер­жи­мое обо­их ка­та­ло­гов и ско­пи­ру­ет толь­ко файлы, не попавшие «под раздачу».

Для ото­бра­жения спи­ска ко­пи­руе­мых фай­лов мож­но до­ба­вить па­ра­метр -v, это мо­жет несколь­ко за­мед­лить про­цесс, ес­ли у вас мно­го ма­лень­ких фай­лов и мед­лен­ный тер­ми­нал (в ча­ст­но­сти, при ра­бо­те по SSH). Обя­за­тель­но ука­жи­те за­вер­шаю­щие сле­ши, так как они оп­ре­де­ля­ют спо­соб ра­бо­ты rsync с ка­та­ло­га­ми.

Ес­ли опустить их, то мы по­лу­чим ко­пию ис­ход­но­го ка­та­ло­га в ка­та­ло­ге на­зна­чения; ука­зав сле­ши, мы ко­пи­ру­ем в ка­та­лог на­зна­чения со­дер­жи­мое ис­ход­но­го ка­та­ло­га – это как раз то, что нам нуж­но.

Ход про­цес­са в дру­гом тер­ми­на­ле в лю­бой мо­мент мож­но про­смот­реть, за­пустив там ко­ман­ду:

du -sh /path/to/source /path/to/dest

5 Ар­хи­тек­тур­ная ошиб­ка

В При ка­ж­дой мо­ей по­пыт­ке за­пустить Eliot 1.14 с LXFDVD156 или с web-страницы все за­кан­чи­ва­ет­ся со­об­щением «wrong architecture [невер­ная ар­хи­тек­ту­ра]». Это про­ис­хо­дит в Ubuntu 10.10 на Lenovo X61. Это пер­вая ошиб­ка, ко­то­рая во­об­ще поя­ви­лась на этом ком­пь­ю­те­ре. Файл system.txt при­ло­жен.

Билл Хекл [Bill Heckle]

О Та­кое со­об­щение обыч­но оз­на­ча­ет, что вы пы­тае­тесь за­пустить 64-бит­ную про­грам­му в 32-бит­ной сис­те­ме, или на­обо­рот. Убе­ди­тесь, что вы вы­бра­ли вер­ный па­кет с DVD – i386 для 32-бит­ной ар­хи­тек­ту­ры, amd64 для 64-бит­ной. Да­же ес­ли уста­нов­лен про­цес­сор Intel (ко­то­рый и есть у вас), ес­ли он 64-бит­ный, нуж­но ис­поль­зо­вать па­кет amd64.

При­чи­ны та­ко­го обо­зна­чения – ис­то­ри­че­­ские: AMD пер­вой пред­ста­ви­ла 64-бит­ный про­цес­сор на осно­ве прежней 32-бит­ной тех­но­ло­гии. У Intel бы­ли свои со­вер­шен­но дру­гие про­цес­со­ры Itanium. Хо­тя сей­час Intel про­из­во­дит про­цес­со­ры с по­мо­щью той же ба­зо­вой ар­хи­тек­ту­ры (в ком­пь­ю­те­ре, за ко­то­рым я пи­шу этот текст, как раз один из та­ких), и их офи­ци­аль­ное на­звание бы­ло EMT64, а за­тем Intel 64; все на тот мо­мент уже поль­зо­ва­лись на­званием AMD64, и оно за­кре­пи­лось. Не­за­ви­си­мое от про­из­во­ди­те­ля на­звание – x86_64.

Ес­ли вы вы­бра­ли нуж­ный па­кет и ошиб­ка все еще возника­ет, про­верь­те, что лю­бые за­ви­си­мо­сти, ко­то­рые вы мог­ли уста­но­вить для это­го па­ке­та, так­же име­ют вер­ную ар­хи­тек­ту­ру. Ес­ли боль­ше ниче­го не по­мо­га­ет, на DVD есть и ис­ход­ный код – по­про­буй­те уста­но­вить про­грам­му из него с по­мо­щью ин­ст­рук­ций в tar-ар­хи­ве, это га­ран­ти­ру­ет вам ком­пи­ляцию для нуж­ной ар­хи­тек­ту­ры.

6 Уве­ли­че­ние раз­ме­ра раз­де­ла

В Я об­но­вил же­ст­кий диск сво­его но­ут­бу­ка с 40 ГБ до 250 ГБ. Ис­ход­ный диск в 40 ГБ (/dev/sda1 и раз­дел под­кач­ки /dev/sda5) я клониро­вал в диск 250 ГБ с по­мо­щью CloneZilla, и по­сле уста­нов­ки но­во­го дис­ка с него пре­крас­но за­гру­зи­лась Ubuntu 9.04.

Я ожи­дал, что CloneZilla уве­ли­чит раз­ме­ры раз­де­лов что­бы ис­поль­зо­вать но­вое ме­сто. К со­жа­лению, но­вые раз­де­лы то­го же раз­ме­ра — 40 ГБ с неис­поль­зуе­мой об­ла­стью в 201 ГБ. За­тем я за­гру­зил GParted с Live CD, но в ней мож­но бы­ло толь­ко умень­шить раз­ме­ры раз­де­лов, так как неис­поль­зуе­мое ме­сто не ото­бра­жа­лось. Как уве­ли­чить раз­мер раз­де­лов?

Стю­арт Мак-Федь­ен [Stuart McFadyen]

О Вы столк­ну­лись с ог­раничением таб­ли­цы раз­де­лов MS DOS, ис­поль­зуе­мой уже 30 лет с гаком. Это ог­раничение в че­ты­ре пер­вич­ных раз­де­ла (ко­то­рое бы­ло нелишним во вре­ме­на же­ст­ких дис­ков раз­ме­ра­ми в 10 МБ). Что­бы мож­но бы­ло до­ба­вить до­полнитель­ные раз­де­лы, один из них нуж­но сде­лать рас­ши­рен­ным, и он смо­жет вклю­чать в се­бя ло­ги­че­­ские раз­де­лы. Ваш за­гру­зоч­ный раз­дел – пер­вич­ный. Хо­тя раз­дел под­кач­ки swap на­хо­дит­ся на ло­ги­че­­ском раз­де­ле, они ну­ме­ру­ют­ся от 5 и вы­ше. Клониро­вав диск, вы соз­да­ли ко­пию раз­де­лов же­ст­ко­го дис­ка в 40 ГБ, и еще 200 ГБ сво­бод­но в кон­це. На них мож­но соз­да­вать до­бавоч­ные раз­де­лы и мон­ти­ро­вать их ку­да требуется (на­при­мер, ор­ганизо­вать от­дель­ный раз­дел для /home), ли­бо пе­ре­мес­тить раз­дел swap в конец дис­ка, что­бы мож­но бы­ло менять раз­мер sda1. Раз­дел под­кач­ки swap мож­но пе­ре­мес­тить и в ра­бо­таю­щей сис­те­ме, но про­ще восполь­зо­вать­ся Live CD.

За­гру­зи­тесь с Live CD, за­пусти­те GParted (или QtParted в Live CD с KDE), уда­ли­те раз­дел swap и со­дер­жа­щий его рас­ши­рен­ный раз­дел (ско­рее все­го, sda2, ес­ли на дис­ке боль­ше ниче­го нет). За­тем соз­дай­те но­вый раз­дел swap в кон­це дис­ка, что­бы неис­поль­зуе­мое про­стран­ст­во на­хо­ди­лось сра­зу по­сле sda1. Те­перь из­мените раз­мер sda1. По­том смон­ти­руй­те sda1 и из­мените etc/fstab для это­го раз­де­ла. Из­мените в стро­ке swap ранее ис­поль­зуе­мый UUID на имя уст­рой­ст­ва (типа /dev/sda2) или на но­вый UUID. Что­бы его уз­нать, от­крой­те тер­ми­нал и за­пусти­те ко­ман­ду

sudo blkid /dev/sda2

Решив сде­лать это, не прекращая ра­бо­ты сис­те­мы, сна­ча­ла от­клю­чи­те раз­дел swap:

sudo swapoff /dev/sda5

За­тем за­пус­ти­те GParted, из­ме­ни­те fstab и сно­ва вклю­чи­те swap ко­ман­дой

sudo swapon /dev/sda5

Да­лее при пер­вой за­груз­ке на­жми­те e в ме­ню Grub для из­менения па­ра­мет­ров за­груз­ки, уда­ли­те quiet splash из стро­ки кон­фи­гу­ра­ции яд­ра и на­жми­те Ctrl + X, что­бы про­дол­жить за­груз­ку. Так мы вы­клю­чим за­став­ку толь­ко для этой за­груз­ки, что­бы уви­деть со­об­щения об ошиб­ках.

Ра­бо­ту swap по­сле за­груз­ки мож­но про­ве­рить ко­ман­дой

cat /proc/swaps


Вол­шеб­ные кноп­ки

» За­чем ком­пь­ю­те­рам кноп­ка пе­ре­за­груз­ки? По­то­му что они по­став­ля­ют­ся с опе­ра­ци­он­ной сис­те­мой от Microsoft.

» Эта шут­ка уста­ре­ла еще при ди­но­зав­рах. По-ва­ше­му, в Linux про­грам­мы никогда не па­да­ют? Яд­ро Linux весь­ма ста­биль­но, и па­дение про­грам­мы обыч­но не слиш­ком за­тра­ги­ва­ет осталь­ную часть сис­те­мы. Но иногда все мо­жет ис­пор­тить некон­тро­ли­руе­мый про­цесс, за­хва­тив­ший все ре­сур­сы про­цес­со­ра или па­мя­ти (или и те, и дру­гие), и мо­жет по­на­до­бить­ся пе­ре­за­груз­ка. Или паника яд­ра мо­жет оста­но­вить ед­ва на­чав­ший­ся про­цесс за­груз­ки.

» Зна­чит, нам все-та­ки нуж­на эта ужас­ная кноп­ка сбро­са? Нет, не нуж­на. В яд­ре Linux преду­смотрено ма­лень­кое вол­шеб­ст­во. Ес­ли на­жать Alt, SysRq и команд­ную кла­ви­шу, яд­ро от­ве­тит на нее, ес­ли оно не за­бло­ки­ро­ва­но пол­но­стью. Так как это функ­ция яд­ра, она на­чи­на­ет ра­бо­тать по­сле за­груз­ки яд­ра, и ею мож­но поль­зо­вать­ся в про­цес­се за­груз­ки сис­те­мы.

» А у ме­ня нет кноп­ки SysRq — тогда что де­лать? Кла­ви­ша SysRq так­же ис­поль­зу­ет­ся для пе­ча­ти с эк­ра­на (Print Screen, PrtSc) – на ней мо­жет быть лю­бое на­звание из этих двух или оба одновременно.

» Что та­кое команд­ные кла­ви­ши? Есть несколь­ко команд­ных кла­виш для вы­полнения раз­лич­ных опе­ра­ций, но са­мые по­лез­ные – R, E, I, S, U и B, на­жа­тые в этом по­ряд­ке. R сбра­сы­ва­ет драй­вер кла­виа­ту­ры в «сы­рой» ре­жим, E от­прав­ля­ет всем про­цес­сам сиг­нал TERM, I от­прав­ля­ет сиг­нал KILL. Не ис­поль­зуй­те две последних кла­ви­ши при уда­лен­ном под­клю­чении, потому что они пре­рвут се­те­вое со­единение. S син­хронизи­ру­ет все смон­ти­ро­ван­ные фай­ло­вые сис­те­мы, то есть немед­лен­но за­пи­сы­ва­ет все за­кэ­ши­ро­ван­ные дан­ные на диск. U раз­мон­ти­ру­ет все смон­ти­ро­ван­ные фай­ло­вые сис­те­мы, за­тем пе­ре­мон­ти­ру­ет их в ре­жи­ме толь­ко для чтения. По­следние две опе­ра­ции га­ран­ти­ру­ют, что со­дер­жи­мое дис­ков бу­дет кор­рект­но за­пи­са­но и не смо­жет быть по­вре­ж­де­но. По­сле это­го мож­но безо­пас­но на­жать тре­тью команд­ную кла­ви­шу B для немед­лен­ной пе­ре­за­груз­ки сис­те­мы.

Так как все дис­ки син­хронизи­ро­ва­ны, то вы не уви­ди­те пре­ду­пре­ж­дений по­сле пе­ре­за­груз­ки, и бу­дет не нуж­но за­пускать fsck.

» Как за­помнить эту по­сле­до­ва­тель­ность? Есть несколь­ко рас­шиф­ро­вок; неко­то­рые очень глу­пые. Мо­же­те восполь­зо­вать­ся та­ким – «Reboot Even If System Utterly Broken [пе­ре­за­гру­зить­ся, да­же ес­ли сис­те­ма со­всем вы­шла из строя]», что весь­ма точ­но пе­ре­да­ет суть, или за­помнить, что это «BUSIER», чи­тае­мое задом наперед.

» Dcе это хо­ро­шо, ес­ли у ком­пь­ю­те­ра есть кла­виа­ту­ра; ну, а ес­ли это уда­лен­ный или ав­то­ном­ный ком­пь­ю­тер? В этом слу­чае за­пусти­те сле­дую­щую вол­шеб­ную ко­ман­ду:

echo s >/proc/sysrq-trigger

Ес­ли вы мо­же­те под­клю­чить­ся к обо­лоч­ке ком­пь­ю­те­ра (shell), то смо­же­те и син­хронизи­ро­вать дис­ки (sync), и за­вер­шить ра­бо­ту сис­те­мы (shutdown).

» Су­ще­ст­ву­ют ли дру­гие по­лез­ные кла­ви­ши и ко­ман­ды? Пол­ный спи­сок и дру­гие важ­ные под­роб­но­сти мож­но най­ти в до­ку­мен­та­ции яд­ра в фай­ле /usr/src/linux/Documentation/sysrq.txt или на сай­те www.mjmwired.net/kernel/Documentation/sysrq.txt.

Персональные инструменты
купить
подписаться
Яндекс.Метрика