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

LXF154:Answers

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

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

Содержание

Ответы

По­ко­ре­ние ко­манд­ной стро­ки

В Я про­чел ста­тью Джо­на­та­на Ро­бер­тса, где го­во­рит­ся, что в по­ис­ке оши­бок очень по­мо­га­ет файл жур­на­ла errors.log. Я поль­зу­юсь Linux Mint 9 с мо­мен­та его по­яв­ления, но не мо­гу най­ти этот файл в /var/log. Ви­ди­мо, в этой вер­сии Linux его нет или он ина­че на­зы­ва­ет­ся. Есть ли ло­ги­че­­ский спо­соб по­ис­ка этих очень удоб­ных лог-фай­лов в раз­лич­ных ди­ст­ри­бу­ти­вах? Уж из­вините, ес­ли во­прос слиш­ком при­зем­лен­ный.

Джон Йейтс [John Yates]

О Во­прос да­лек от при­зем­лен­но­сти: ме­ж­ду ди­ст­ри­бу­ти­ва­ми здесь есть неко­то­рое несо­от­вет­ст­вие. Пре­ж­де все­го, у них раз­ный вы­бор сис­тем­но­го лог­ге­ра по умол­чанию. По­жа­луй, са­мый по­пу­ляр­ный – syslog-ng; он ис­поль­зу­ет­ся в Linux Mint 9 и со­хра­ня­ет сис­тем­ный файл жур­на­ла в /var/log/messages. Про­грам­мы, за­пу­щен­ные на ком­пь­ю­те­ре, мо­гут за­пи­сы­вать со­об­щения в этот файл или при­ме­нять соб­ст­вен­ную сис­те­му жур­на­ли­ро­вания.

Об­на­ру­жить, ка­кой файл ис­поль­зу­ет­ся, про­ще все­го ста­рой доб­рой ко­ман­дой ls.

sudo ls -ltr /var/log

Па­ра­метр l вклю­ча­ет бо­лее под­роб­ный вы­вод – по стро­ке с дан­ны­ми на ка­ж­дый файл; t сор­ти­ру­ет за­пи­си по вре­мени по­следнего из­менения; а r из­ме­ня­ет по­ря­док за­пи­сей на про­ти­во­по­лож­ный, так что за­пи­си для са­мых но­вых фай­лов ока­зы­ва­ют­ся в кон­це спи­ска.

(thumbnail)
Фай­лы сис­тем­ных жур­на­лов — цен­ный ис­точ­ник ин­фор­ма­ции, ко­гда что-то идет не так... ес­ли вы их оты­ще­те.

Так как sudo обыч­но вы­во­дит со­об­щения в сис­тем­ный файл, этот файл дол­жен поя­вить­ся в кон­це спи­ска. Ес­ли Вы ище­те недав­но из­менен­ные фай­лы в под­ка­та­ло­ге, мож­но восполь­зо­вать­ся ко­ман­да­ми:

touch NOW

run your command

find /var/log -newer NOW

Пер­вая ко­ман­да за­да­ет вре­мен­ной штамп фай­ла NOW (имя зна­чения не име­ет, а ес­ли та­ко­го фай­ла нет, он соз­да­ст­ся); за­тем вы де­лае­те необ­хо­ди­мое вам. Find на­хо­дит все фай­лы, из­менен­ные по­сле фай­ла NOW. Спи­сок дол­жен быть ко­рот­ким и вклю­чать все лог-фай­лы, ко­то­рые бы­ли из­менены толь­ко что за­пу­щен­ной ко­ман­дой. ДжР

По­пал в пе­ре­дря­гу

В У ме­ня есть сер­вер Ubuntu с Unity, по­это­му я мо­гу ис­поль­зо­вать его как основ­ной ком­пь­ю­тер. Он об­слу­жи­ва­ет неболь­шую сеть на­ше­го офи­са, и с Natty 11.04 все бы­ло чу­дес­но. Од­на­ко об­нов­ление до Ocelot 11.10 обер­ну­лось ка­та­ст­ро­фой. Я всегда вы­жи­даю па­ру недель, что­бы в све­жем ре­ли­зе ис­пра­ви­ли ошиб­ки, но это об­нов­ление вве­ло ме­ня в сту­пор. Для на­ча­ла — по­сле пе­ре­за­груз­ки я по­лу­чил со­об­щение «waiting for network configuration [ожи­дание на­строй­ки се­ти]». Я за­лез в Google и уз­нал, что в Ubuntu те­перь ис­поль­зу­ет­ся /run вме­сто /var/run, и нуж­но вве­сти несколь­ко команд. Я так и сде­лал, и эта про­бле­ма ис­чез­ла, но те­перь мне не вой­ти как ад­минист­ра­то­ру в гра­фи­че­­ский ра­бо­чий стол — ок­но вхо­да в сис­те­му про­сто за­цик­ли­ва­ет­ся. Я мо­гу вой­ти в сис­те­му че­рез команд­ную стро­ку, SSH или Webmin с дру­го­го ком­пь­ю­те­ра. Я мо­гу зай­ти в сис­те­му от имени дру­гих поль­зо­ва­те­лей, но у тех нет досту­па к внешним дис­кам, и они не мо­гут вы­клю­чить сис­те­му. Про­цесс об­нов­ления на Ocelot, по­хо­же, управ­ля­ет­ся от­вра­ти­тель­но: мно­же­ст­во сис­тем оста­лось в со­стоянии неоп­ре­де­лен­но­сти, и ошиб­ки не ис­прав­ля­ют­ся. Об этой ошиб­ке (#875542) в Launchpad со­об­щи­ли несколь­ко че­ло­век, но по­ка на их со­об­щения никто и не взгля­нул. Моя ве­ра в Ubuntu серь­ез­но по­шат­ну­лась. Ес­ли вы по­мо­же­те ра­зо­брать­ся, в чем тут де­ло, то станете мои­ми ры­ца­ря­ми на бе­лых ко­нях.

Дик Эл­ли­сон [Dik Allison] ]]

(thumbnail)
Unetbootin, за­ду­ман­ная для пре­об­ра­зо­ва­ния ISO-об­ра­зов в за­гру­зоч­ные USB-флэш­ки, так­же мо­жет пре­об­ра­зо­вать це­лый DVD с дан­ны­ми.

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

sudo dpkg-reconfigure gdm

Это ско­рее об­ход­ной путь, чем ре­шение. Что­бы все ра­бо­та­ло пра­виль­но со стан­дарт­ным lightdm, нуж­но пе­ре­мес­тить несколь­ко фай­лов из /var/run в /run. В /var/run тра­ди­ци­он­но хра­нят­ся фай­лы PID (иден­ти­фи­ка­то­ров про­цес­сов), со­ке­тов и по­доб­ная ин­фор­ма­ция для за­пуска де­мо­нов. В ча­ст­но­сти, фай­лы PID ис­поль­зу­ют­ся SysVinit, сис­те­мой за­пуска вся­ких сер­ви­сов, ко­то­рые долж­ны вы­пол­нять­ся на ком­пь­ю­те­ре. Сей­час про­ис­хо­дит пе­ре­ход на ис­поль­зо­вание /run, осо­бен­но с Upstart, за­ме­ной SysVinit в Ubuntu. В этом есть смысл, так как /var мо­жет на­хо­дить­ся в от­дель­ной фай­ло­вой сис­те­ме и быть недоступ­ным в на­ча­ле про­цес­са за­груз­ки. Ви­ди­мо, Ва­ша про­бле­ма вы­зва­на непол­ным пе­ре­хо­дом с /var/run на /run, и вот ра­бо­таю­щее ре­шение, хо­тя оно мо­жет по­ка­зать­ся немно­го то­пор­ным:

sudo mv /var/run/* /run/

sudo rmdir /var/run

sudo ln -s /run /var/run

Здесь все пе­ре­ме­ща­ет­ся из /var/run в /run, где оно и долж­но те­перь на­хо­дить­ся; за­тем ста­рый ка­та­лог /var/run уда­ля­ет­ся и за­ме­ня­ет­ся сим­во­ли­че­­ской ссыл­кой на /run. Те­перь все на­хо­дит­ся в но­вом ка­та­ло­ге, но при по­пыт­ках по­ис­ка в ста­ром ка­та­ло­ге оно тем не менее бу­дет най­де­но. Не­об­хо­ди­мость в сим­во­ли­че­­ской ссыл­ке от­па­дет, как толь­ко во всех скрип­тах за­пуска про­пи­шет­ся но­вый ка­та­лог. Кста­ти, су­ще­ст­ву­ет и дру­гая за­ме­на для SysVinit – systemd, в на­стоя­щее вре­мя ис­поль­зуе­мая в Fedora и Mandriva. Она так­же ис­поль­зу­ет /run вме­сто /var/run. Та­ким об­ра­зом, хо­тя сис­те­мы инициа­ли­за­ции раз­ные, но они, по крайней ме­ре, еди­ны в сво­ем из­бав­лении от ста­ро­го. НБ


Мне бы LXFUSB

В На сво­ем нетбу­ке я чи­таю ста­тьи и про­бую но­вые ди­ст­ри­бу­ти­вы. Вме­сто за­груз­ки ди­ст­ри­бу­ти­ва из фай­ла ISO я хо­тел бы за­гру­жать­ся с дис­ка, при­ла­гае­мо­го к жур­на­лу, но у ме­ня нет при­во­да DVD-ROM. Как ско­пи­ро­вать DVD на USB-флэш­ку на дру­гом ком­пь­ю­те­ре, что­бы мож­но бы­ло за­гру­зить­ся с нее и про­честь ста­тьи?

Я про­бо­вал dd, но по­ка не на­шел вер­ных па­ра­мет­ров, и при­шлось пе­ре­фор­ма­ти­ро­вать диск, что­бы им сно­ва мож­но бы­ло поль­зо­вать­ся.

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

О Ко­пи­ро­вание оп­ти­че­­ско­­го дис­ка на USB-флэш­ку ра­бо­та­ет ред­ко. Уст­рой­ст­ва USB за­гру­жа­ют­ся как же­ст­кий диск, а CD и DVD ис­поль­зу­ют дру­гой ме­тод за­груз­ки. Мож­но соз­да­вать гиб­рид­ные ISO-об­ра­зы, до­пускаю­щие и запись их на CD/DVD, и ко­пи­ро­вание на USB-флэш­ку ко­ман­дой dd, но они ис­поль­зу­ет­ся не слиш­ком час­то.

Про­стей­ший ва­ри­ант – восполь­зо­вать­ся программой Unetbootin (http://unetbootin.sourceforge.net). Она обыч­но ис­поль­зу­ет­ся для кон­вер­та­ции ISO-об­раза и его уста­нов­ки на USB-диск. Ес­ли Вы хо­ти­те ско­пи­ро­вать один из ISO-об­ра­зов с DVD на USB-на­ко­пи­тель, мож­но про­сто за­гру­зить его в Unetbootin, но ес­ли Вы хо­ти­те ско­пи­ро­вать весь DVD, это чуть сложнее, так как Unetbootin ра­бо­та­ет с ISO-об­раз­ами. ISO-об­раз – про­сто со­дер­жи­мое дис­ка, со­хранен­ное в ви­де фай­ла и го­то­вое для за­пи­си на диск. Пре­об­ра­зо­вать DVD или CD в ISO-об­раз мож­но сле­дую­щей ко­ман­дой:

cp /dev/dvd luverlylxfdvd.iso

Убе­ди­тесь, что в те­ку­щем ка­та­ло­ге доста­точ­но мес­та, или ука­жи­те путь до дру­го­го ка­та­ло­га, в ко­то­ром бы­ло бы сво­бод­но не менее 4 ГБ для ISO-об­раза.

Бла­го­да­ря кон­цеп­ции Unix «все яв­ля­ет­ся фай­лом» мож­но опустить про­ме­жу­точ­ный ISO-об­раз. В дан­ном слу­чае это оз­на­ча­ет, что Ваш DVD-при­вод пред­став­ля­ет­ся в ви­де фай­ла, а по­сколь­ку DVD соз­да­ет­ся из ISO-об­раза, то об­раз досту­пен в этом фай­ле. По­это­му ко­пи­ро­вание /dev/dvd в ISO-файл ра­бо­та­ет, и мож­но ис­поль­зо­вать его на­пря­мую, ука­зав путь к DVD-при­во­ду в ка­че­­ст­ве ме­сто­по­ло­жения ISO-об­раза в Unetbootin. Уч­ти­те, что нуж­но ука­зать сам DVD-при­вод, ко­то­рый обыч­но на­хо­дит­ся в /dev/sr0 или /dev/dvd (по­следнее обыч­но яв­ля­ет­ся сим­во­ли­че­­ской ссыл­кой на на­стоя­щий файл уст­рой­ст­ва), а не точ­ку мон­ти­ро­вания, ис­поль­зуе­мую для чтения фай­лов с DVD.

Вы­бе­ри­те в Unetbootin оп­цию Diskimage [Об­раз дис­ка] , оставь­те тип об­раза в «ISO» и на­бе­ри­те /dev/dvd в по­ле ря­дом. Вы­бе­ри­те свой USB-диск, на­жми­те OK и жди­те. Так как ин­фор­ма­ция бу­дет счи­ты­вать­ся с DVD, про­цесс бу­дет ид­ти мед­леннее, чем при ра­бо­те с фай­лом ISO на же­ст­ком дис­ке, но че­рез несколь­ко ми­нут у Вас бу­дет за­гру­зоч­ный LXFUSB. Раз­мер на­ших дис­ков обыч­но пре­вы­ша­ет 4 ГБ (на DVD по­ме­ща­ет­ся 4,3 или 4,7 ГБ), по­это­му Вам по­на­до­бит­ся флэш­ка раз­ме­ром не менее 8 ГБ. НБ

За­пуск в фоне

В Я пол­ный но­ви­чок в Linux и немно­го по­иг­рал с Debian и SSH. Я на­пи­сал про­грам­му на Java, ко­то­рую хо­чу за­пустить на ка­ком-нибудь де­ше­вом сер­ве­ре — она не слиш­ком тре­бо­ва­тель­на, и мне понадобится толь­ко сер­вер MySQL; по­это­му моя сле­дую­щая идея — приобрести DreamPlug.

Од­на­ко я пи­сал и за­пускал про­грам­му толь­ко на Java в Windows, и не пред­став­ляю, как за­пустить ее в Linux. Я знаю, что в Windows мож­но соз­дать се­анс SSH и за­пустить ее из него. И я хо­тел бы, что­бы про­грам­ма ра­бо­та­ла все вре­мя (она сканиру­ет сай­ты и об­ра­ба­ты­ва­ет ин­фор­ма­цию), но как это сде­лать? Как я понимаю, при за­кры­тии SSH-тер­ми­на­ла за­кро­ет­ся и про­грам­ма, а я это­го не хо­чу.

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

О Про­грам­му на Java мож­но за­пустить с тер­ми­на­ла ко­ман­дой

java classname

или ко­ман­дой

java -jar file.jar

в за­ви­си­мо­сти от то­го, на­пи­са­на ли про­грам­ма в ви­де class-фай­ла ли­бо в ви­де фай­ла .jar. Вы пра­вы в том, что при за­кры­тии обо­лоч­ки лю­бые ко­ман­ды, вы­пол­няю­щие­ся в ней, обыч­но за­вер­ша­ют­ся. Од­на­ко есть несколь­ко спо­со­бов про­дол­жить вы­полнение про­грам­мы по­сле за­кры­тия обо­лоч­ки. Один из них – восполь­зо­вать­ся ко­ман­дой nohup:

nohup yourprogram itsarguments &

Она от­со­единит про­грам­му от обо­лоч­ки и «хво­ста [trailing]» и за­ста­вит ее вы­пол­нять­ся в фо­но­вом ре­жи­ме. Ес­ли Вам ну­жен вы­вод ко­ман­ды, его при­дет­ся пе­ре­на­пра­вить в файл:

nohup yourprogram itsarguments >>/var/log/

yourprogram.log

Дру­гой ва­ри­ант – вос­поль­зо­вать­ся ко­ман­да­ми screen или tmux. Обе соз­да­ют се­анс тер­ми­на­ла, ко­то­рый мож­но от­де­лить от обо­лоч­ки:

screen yourprogram itsarguments

или

tmux -c “yourprogram itsarguments”

Все бу­дет вы­гля­деть так, как буд­то про­грам­ма вы­пол­ня­ет­ся в обо­лоч­ке, но се­анс мож­но от­клю­чить от тер­ми­на­ла, на­жав Ctrl + A D (для tmux – Ctrl + B D). Тер­ми­нал ис­че­за­ет, но про­грам­ма в нем все еще вы­пол­ня­ет­ся; вер­нуть­ся в него мож­но ко­ман­дой

screen -R

или

tmux attach

Сде­лать это мож­но в со­вер­шен­но дру­гом се­ан­се SSH, по­это­му мож­но за­пустить про­грам­му из од­но­го мес­та и от­сле­жи­вать ее из дру­го­го.

У команд tmux и screen ку­ча па­ра­мет­ров (я пред­по­чи­таю tmux, хо­тя screen бо­лее по­пу­ляр­на), и что­бы уз­нать о них по­под­робнее, по­изу­чай­те man-страницы. Еще один ва­ри­ант – обес­пе­чить ав­то­ма­ти­че­­ский за­пуск про­грам­мы при за­груз­ке ком­пь­ю­те­ра. В Debian и по­хо­жих ди­ст­ри­бу­ти­вах в /etc/rc.local есть скрипт, за­пускае­мый в кон­це про­цес­са за­груз­ки сис­тем. По умол­чанию скрипт пуст и ниче­го не де­ла­ет; про­сто до­бавь­те ту­да свои ко­ман­ды, что­бы они вы­пол­ня­лись при за­пуске ком­пь­ю­те­ра. Здесь не нуж­но поль­зо­вать­ся nohup или screen/tmux, но они долж­ны за­кан­чи­вать­ся &, что­бы не бло­ки­ро­вать вы­полнение по­сле­дую­щих команд. По­след­няя стро­ка скрип­та по умол­чанию – exit 0; из­мените ее на

yourprogram itsarguments &

exit 0

МС


Вир­ту­аль­но нель­зя?

В Я поль­зу­юсь Linux Mint 9 в ре­дак­ции Gnome, но хо­тел бы по­про­бо­вать Linux Mint в ре­дак­ции Debian в VirtualBox. Я успеш­но вир­туа­ли­зи­ро­вал Windows XP, но когда пы­та­юсь вир­туа­ли­зи­ро­вать LMDE, то по­лу­чаю сле­дую­щее со­об­щение:

‘The virtual machine execution may run into an error

condition as described below. We suggest that you take an appropriate action to avert the error.

The host I/O cache for at least one controller is

disabled and the medium ‘/home/maximolinux/

VirtualBox VMs/Linux Mint Debian Edition/Linux Mint Debian Edition.vdi’ for this

VM is located on an ext4 partition. There is a known

Linux kernel bug which can lead to the corruption of the virtual disk image under these conditions.

Either enable the host I/O cache permanently in the

VM settings or put the disk image and the snapshot folder onto a different file system.

The host I/O cache will now be enabled for this medium.’

Я так­же про­бо­вал соз­да­вать файл vdi на су­ще­ст­вую­щем раз­де­ле FAT со свои­ми до­ку­мен­та­ми, но это не сра­бо­та­ло. Был бы очень бла­го­да­рен за по­мощь, по­то­му что не хо­чу соз­да­вать кон­фи­гу­ра­цию с двой­ной за­груз­кой, что­бы по­про­бо­вать LMDE: я бы предпочел не тро­гать Grub и раз­де­лы, ес­ли есть дру­гой вы­ход.

M·ximo Fraga

О Про­бле­ма в ошиб­ке яд­ра, ко­то­рая мо­жет вы­звать раз­ру­шение фай­ло­вой сис­те­мы при ис­поль­зо­вании вир­ту­аль­но­го дис­ка на фай­ло­вой сис­те­ме ext4. Ра­бо­тать бу­дут два та­ких ва­ри­ан­та: ли­бо вклю­чи­те кэ­ши­ро­вание в вир­ту­аль­ной ма­шине, ли­бо восполь­зуй­тесь дру­гой фай­ло­вой сис­те­мой. К со­жа­лению, Вы ре­ши­ли об­ра­тить­ся ко вто­ро­му спо­со­бу, вы­брав худ­ший из воз­мож­ных ва­ри­ан­тов фай­ло­вой сис­те­мы.

Сре­ди мно­же­ст­ва про­чих недостат­ков, фай­ло­вые сис­те­мы FAT не под­дер­жи­ва­ют фай­лы раз­ме­ром боль­ше 4 ГБ. Од­на­ко они не со­об­щат Вам об этом и не по­да­дут ника­ких при­зна­ков непо­ла­док – боль­шие фай­лы бу­дут соз­да­вать­ся и ко­пи­ро­вать­ся, но про­сто не бу­дут ра­бо­тать.

(thumbnail)
GSmartControl при­даст smartctl дру­же­люб­ный вид и ска­жет вам, ра­бо­та­ет ли же­ст­кий диск и ко­гда он на­ме­рен сло­мать­ся!

Ес­ли Вам нуж­на фай­ло­вая сис­те­ма, лег­ко доступ­ная из Windows и из Linux, пре­крас­ный вы­бор – NTFS, но в этой си­туа­ции са­мое оче­вид­ное ре­шение – вклю­чить кэ­ши­ро­вание вво­да/вы­во­да в VirtualBox. Так как Вы уже уста­но­ви­ли сис­те­му без этой оп­ции, то есть шанс, что неко­то­рое по­вре­ж­дение уже име­ло ме­сто, хо­тя со­об­щение го­во­рит, что кэ­ши­ро­вание бы­ло вклю­че­но вре­мен­но; по­это­му бу­дет ум­но на­чать сно­ва. Соз­дай­те свою вир­ту­аль­ную ма­ши­ну обыч­ным об­ра­зом, за­тем зай­ди­те в Settings > Storage [На­строй­ки > Уст­рой­ст­ва хранения дан­ных]. Вы­бе­ри­те кон­трол­лер SATA – дол­жен поя­вить­ся файл об­раза же­ст­ко­го дис­ка; и по­ставь­те га­лоч­ку у Use host I/O cache [Ис­поль­зо­вать кэ­ши­ро­вание вво­да/вы­во­да на глав­ном ком­пь­ю­те­ре]. Мож­но сде­лать то же са­мое и для кон­трол­ле­ра IDE, но обыч­но это при­ме­ня­ет­ся толь­ко для оп­ти­че­­ских дис­ков и ISO-об­ра­зов.

Вы ска­за­ли, что в ка­че­­ст­ве основ­ной сис­те­мы ис­поль­зу­ет­ся Linux Mint 9. По­след­няя вер­сия VirtualBox в ре­по­зи­то­ри­ях Mint 9 – 3.1.6, те­ку­щая вер­сия – 4.1.6. Воз­мож­но, сто­ит об­но­вить­ся до бо­лее поздней вер­сии Mint, ли­бо уда­лить уста­нов­лен­ную вер­сию VirtualBox и ска­чать све­жую на­пря­мую с virtualbox.org. В це­лом, пер­вый ва­ри­ант луч­ше, так как в Mint 9 на­вер­ня­ка есть и дру­гие уста­рев­шие вер­сии па­ке­тов, нуж­ных для ра­бо­ты VirtualBox.

Сло­ман же­ст­кий диск

В Мой Toshiba Tecra вче­ра ве­че­ром ша­лил — эк­ран вы­клю­чал­ся и опять вклю­чал­ся. Я по­ду­мал, что де­ло в неустой­чи­вом се­те­вом под­клю­чении, та­кое бы­ва­ет. Но се­го­дня он не за­гру­жа­ет­ся — на ста­дии за­груз­ки Grub я ви­жу сле­дую­щее со­об­щение:

error: unknown filesystem

grub rescue>

Сто­ит ли пе­реуста­но­вить Linux? Это Ubuntu 9.10; вер­сия ста­рая, я знаю, но она пре­крас­но ра­бо­та­ла. Бо­лее поздние вер­сии не ла­ди­ли с драй­ве­ром монито­ра.

Ко­лин Уайт [Colin White]

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

Воз­мож­но, диск мертв, и ника­ким про­грам­мам уже его не ожи­вить – вин­че­сте­ры силь­но не лю­бят сбои пи­тания. Но по­на­де­ем­ся на луч­шее и начнем с менее серь­ез­ных про­блем. За­гру­зи­тесь с Live CD, ти­па System Rescue CD, ко­то­рый мож­но най­ти на DVD с этим но­ме­ром жур­на­ла, и вы­полните ко­ман­ду для про­вер­ки дис­ка:

fsck -f /dev/sda1

– пред­по­ла­га­ет­ся, что Ubuntu уста­нов­ле­на в пер­вый раз­дел пер­во­го дис­ка. При ис­поль­зо­вании Live CD с сис­те­мой на ба­зе Ubuntu пред­ва­ри­те эту ко­ман­ду пре­фик­сом sudo. Ес­ли эта ко­ман­да най­дет и ис­пра­вит ошиб­ки, воз­мож­но, фай­ло­вая сис­те­ма по­вре­ж­де­на незна­чи­тель­но, и ее уда­ст­ся восста­но­вить. Ес­ли fsck со­об­ща­ет, что су­пер­блок некор­рек­тен [superblock is invalid], за­пусти­те ее сно­ва с ре­зерв­ным су­пер­бло­ком.

e2fsck -b 8193 /dev/sda1

Су­пер­блок – на­чаль­ная точ­ка фай­ло­вой сис­те­мы; она так важ­на, что на дис­ке на слу­чай по­вре­ж­дения хранит­ся ее за­пас­ная ко­пия. Ес­ли это не по­мо­га­ет, по­про­буй­те восста­но­вить раз­де­лы с по­мо­щью TestDisk, то­же имею­щем­ся на System Rescue CD. Спер­ва ско­ман­дуй­те

testdisk /list /dev/sda

и по­смот­ри­те, что об­на­ру­жит­ся. Ес­ли все вы­гля­дит пра­виль­но, за­пусти­те ко­ман­ду сно­ва без па­ра­мет­ра /list. Ес­ли это не по­мо­га­ет, по­про­буй­те пе­реуста­но­вить сис­те­му, но Вы по­те­ряе­те все, что у Вас есть, а ве­ро­ят­ность ап­па­рат­ной неис­прав­но­сти все еще оста­ет­ся. Что­бы это про­ве­рить, восполь­зуй­тесь са­мо­ди­аг­но­сти­кой SMART, встро­ен­ной в боль­шин­ст­во дис­ков. Ко­ман­да

smartctl -H /dev/sda

вы­полнит ба­зо­вую про­вер­ку дис­ка с ре­зуль­та­том PASS или FAIL («прой­де­на» или «не прой­де­на»). Бо­лее под­роб­ная про­вер­ка де­ла­ет­ся ко­ман­дой

smartctl --test=short --captive /dev/sda

Оп­ци­ей captive поль­зуй­тесь не с при­мон­ти­ро­ван­но­го дис­ка, а толь­ко с Live CD. Ес­ли диск по­вре­ж­ден, часть дан­ных все-та­ки мож­но спа­сти с по­мо­щью на­парника TestDisk, про­грам­мы PhotoRec. Она из­на­чаль­но соз­да­ва­лась для восста­нов­ления фо­то­гра­фий со слу­чай­но от­фор­ма­ти­ро­ван­ных карт па­мя­ти, от­сю­да и на­звание; но тем не менее уме­ет восста­нав­ли­вать фай­лы всех ти­пов. К со­жа­лению, при по­вре­ж­дении фай­ло­вой сис­те­мы име­на фай­лов не всегда восста­нав­ли­ва­ют­ся – толь­ко их со­дер­жи­мое; но мно­гие фай­лы, та­кие как фо­то­гра­фии и му­зы­ка, все рав­но со­дер­жат глав­ную ин­фор­ма­цию внут­ри. Ко­ман­да

photorec /d /mnt/usbstick /dev/sda1

восста­но­вит с дис­ка то, что смо­жет, за­пи­сав ре­зуль­тат на уст­рой­ст­во, смон­ти­ро­ван­ное в /mnt/usbstick. НБ

(thumbnail)
Ис­поль­зуя VirtualBox на фай­ло­вой сис­те­ме ext4, вклю­чи­те кэ­ши­ро­ва­ние вво­да/вы­во­да в глав­ной сис­те­ме, что­бы из­бе­жать рис­ка по­вре­ж­де­ния дан­ных.

Кон­фуз шиф­ро­вания

В Год на­зад я пе­ре­шел Mint с раз­де­ла­ми: 10 ГБ — корневой, 1 ГБ — раз­дел под­кач­ки и осталь­ные (или так я ду­мал) 189 ГБ — /home. Mint пред­ло­жил за­шиф­ро­вать до­машний ка­та­лог, как я и сде­лал. Сис­те­ма ска­за­ла, что оста­лось все­го 18 МБ сво­бод­но­го мес­та. С чув­ст­вом на­рас­таю­щей паники я уда­лил боль­шую часть сво­их лич­ных фай­лов и опусто­шил вся­кие кэ­ши и кор­зи­ны. По-мо­ему, я за­гнал се­бя в угол, и мне нуж­на по­мощь. Вы­вод ути­ли­ты ана­ли­за ис­поль­зо­вания дис­ка baobab го­во­рит, что об­щий объ­ем фай­ло­вой сис­те­мы — 10,1 ГБ. Из них 4,3 ГБ занима­ет корневой раз­дел, а в нем 2,6 ГБ — в ка­та­ло­ге /usr; 819 МБ — в /home, 409,9 МБ — в /home/david (он за­шиф­ро­ван encryptfs), 518,6 МБ — в /var, и осталь­ное по ме­ло­чи; 190 ГБ не ис­поль­зу­ют­ся. За­пуск df по­ка­зы­ва­ет:

Filesystem	Size	Used	Avail	Use%

Mounted on

/dev/sde1	9.7G	3.7G	5.5G	40% /

/dev/sde5	493M	422M	47M	91% home

/home/david/.Private	493M	422M	47M	91% /home/david 

У ме­ня есть две USB-флэш­ки по 2 ГБ, и про­бле­ма такова: ес­ли я ско­пи­рую все на них, оно что — бу­дет за­шиф­ро­ва­но, и я никогда не смо­гу вер­нуть­ся в от­кры­тую сис­те­му?

Дэ­вид Мак-Кроссан [David McCrossan]

О Про­бле­ма в том, что до­машний ка­та­лог на­хо­дит­ся не там, где Вы ду­мае­те. При­слан­ный ва­ми вы­вод ко­ман­ды fdisk

Device	Boot	Start	End	Blocks	Id

/dev/sde1	*	1	1275	10241406	83

/dev/sde2	1276	1337	498015	82

/dev/sde3	1403	24321	184096867	83

/dev/sde4	1338	1402	521217	5

/dev/sde5	1338	1402	521216	83

по­ка­зы­ва­ет, что корневой раз­дел, как по­ла­га­ет­ся, на­хо­дит­ся на sde1, но боль­шой раз­дел, ко­то­рый Вы соз­да­ли для /home на sde3, не ис­поль­зу­ет­ся. Вме­сто него ис­поль­зу­ет­ся го­раз­до мень­ший раздел sde5.


Са­мый про­стой ва­ри­ант – пе­ре­мес­тить дан­ные с sde5 на sde3 и из­менить /etc/fstab, что­бы он ука­зы­вал на sde3. Шиф­ро­вание до­бав­ля­ет лишний уро­вень, что мо­жет усугубить пу­таницу.

В Mint для шиф­ро­вания до­машних ка­та­ло­гов ис­поль­зу­ет­ся ecryptfs. При этом шиф­ру­ет­ся не вся фай­ло­вая сис­те­ма, а все фай­лы по от­дель­но­сти, и за­тем они хра­нят­ся в стан­дарт­ной фай­ло­вой сис­те­ме. По­это­му Вы ви­ди­те две точ­ки мон­ти­ро­вания, /home и /home/david, с оди­на­ко­вы­ми объ­е­ма­ми дан­ных. Ва­ши фай­лы со­хра­ня­ют­ся на диск в за­шиф­ро­ван­ном фор­ма­те в /home/david/.Private. Ка­та­лог мон­ти­ру­ет­ся на /home/david с ис­поль­зо­ванием ecryptfs, по­это­му в нем мож­но най­ти неза­шиф­ро­ван­ные вер­сии фай­лов. Обыч­но Вам не вид­но со­дер­жи­мое /home/david/.Private, но ес­ли за­гру­зить­ся с Live CD и за­гля­нуть в этот ка­та­лог, Вы уви­ди­те нечто по­хо­жее на му­сор. Про­стей­ший ва­ри­ант – за­гру­зить­ся с Live CD, при­мон­ти­ро­вать sde3 и sde5 и ско­пи­ро­вать свои дан­ные по­верх этих. Про­ще опи­сать это с по­мо­щью команд в тер­ми­на­ле:

sudo -i

mkdir -p /mnt/sde3

mkdir -p /mnt/sde5

mount /dev/sde3 /mnt/sde3

mount /dev/sde5 /mnt/sde5

rsync --archive --verbose --delete /mnt/sde5/ /mnt/sde3/ --dry-run

Мон­ти­ру­ют­ся две фай­ло­вые сис­те­мы, и со­дер­жи­мое sde5 ко­пи­ру­ет­ся в sde3, со­хра­няя все вре­мен­ные от­мет­ки и пра­ва досту­па и уда­ляя все, что уже там есть. Па­ра­метр --dry-run оз­на­ча­ет, что дей­ст­вия этой ко­ман­ды бу­дут толь­ко по­ка­за­ны, но не вы­полнены. Ес­ли все дей­ст­вия вер­ны, за­пусти­те ко­ман­ду сно­ва без это­го па­ра­мет­ра.

Смон­ти­руй­те /dev/sde1 на /mnt/sde1 как и пре­ж­де, и из­мените /mnt/sde1/etc/fstab. Най­ди­те стро­ку для /home – она вы­гля­дит на­по­до­бие

UUID=xxxxxxxxxx /home /ext4 ...

Из­мените фраг­мент UUID=xxx на /dev/sde3 (ес­ли Вы хо­ти­те оста­вить UUID, мо­же­те уз­нать UUID для sde3 с по­мо­щью ко­ман­ды sudo blkid -p /dev/sde3). Те­перь пе­ре­за­гру­зи­тесь, и в до­машнем ка­та­ло­ге долж­но поя­вить­ся сво­бод­ное ме­сто.

Как и всегда при ра­бо­те с фай­ла­ми на дис­ке, воз­мож­ны ошиб­ки (ес­ли по­ме­нять мес­та­ми ар­гу­мен­ты rsync, она опусто­шит Ваш до­машний ка­та­лог), и луч­ше под­стра­хо­вать­ся, за­ранее сде­лав ко­пию на USB-бре­лок. Так как USB-брел­ки обыч­но ис­поль­зу­ют фай­ло­вую сис­те­му Windows, при ко­пи­ро­вании фай­лов на­пря­мую ут­ра­тит­ся ин­фор­ма­ция о пра­вах досту­па, что вы­зо­вет про­бле­мы в бу­ду­щем. По­это­му ли­бо от­фор­ма­ти­руй­те бре­лок в ext2, ли­бо ис­поль­зуй­те tar для ар­хи­ви­ро­вания фай­лов.

tar -czf /media/usbstick/mystuff.tar.gz ~

Эта ко­ман­да ско­пи­ру­ет неза­шиф­ро­ван­ные вер­сии фай­лов, но они бу­дут за­шиф­ро­ва­ны сно­ва, когда Вы ско­пи­руе­те их в за­шиф­ро­ван­ный ка­та­лог home. За­тем Вы смо­же­те сно­ва за­гру­зить­ся с Live CD и с по­мо­щью gparted уда­лить sde5 и рас­ши­рить раздел sde3, присоединив к нему ме­сто на диске, которое ранее было захвачено раз­де­лом sde5. ДжР




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