Восстановление системы линукс

Как восстановить Linux?

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

Но это было давно, сегодня такие программы, как Ccleaner для Windows 7 уже не такие сырые, как раньше, но всё же есть ещё масса всего, что может вызвать сбой и падение операционной системы: вирусы, кривые драйвера и недоработанные программы.

По моему опыту убить Windows НАМНОГО проще, чем Linux, но и его убить можно… Как восстановить Linux после краха, если это вдруг произойдёт? Вот что я могу порекомендовать в некоторых случаях.

Сразу хочу сказать, что иногда бывает систему проще переустановить, чем копаться часами и искать причину.

Восстановление Ubuntu

Чтобы эта процедура проходила всегда легко и безболезненно, ВСЕГДА делайте каталог /Home на отдельном разделе при установке Linux. В этом случае все ваши данные и настройки программ сохранятся. Нужно будет только заново установить нужные программы и обновления.

Чтобы сохранить список уже установленных программ, а потом установить из него, можно воспользоваться такой командой:

 sudo dpkg —get-selections > software

После этого у вас в домашней папке появится маленький текстовый файл с названием software, в котором будет список всех установленных у вас программ. После переустановки системы вам будет нужно только выполнить команду:

 sudo dpkg —get-selections < software

И все ваши программы скачаются и установятся, не нужно вспоминать, что у вас стояло до этого.

Если у вас слетел загрузчик системы GRUB, то восстановить его можно легко, как описано в в статье "Как восстановить загрузчик Linux".

Но бывают ситуации, когда мы сами начинаем копаться в системных файлах и что-то сделаем не так, и система потом не загружается. Такое было со мной не раз, к примеру, когда я пытался установить драйвера видеокарты ATI, которые рушили xorg.conf и потом приходилось его редактировать в ручную.

Так вот, если это случится, вам будет намного проще восстанавливать файлы через программу MC, которая вам возможно знакома по Windows. Это двух панельный консольный файловый менеджер, который выглядит вот так:

Знакомо, правда? Установить это чудо можно простой командой:

sudo apt-get install mc

Нет, если вы умеете работать с VIM и NANO, то конечно, но для новичком так будет попроще.

Если быть объективным, то Linux у меня если и падал, то только по моей вине. Поэтому восстановление чаще всего заключалось в исправлении тех файлов, в которых произошёл сбой. Поэтому перед экспериментами ВСЕГДА сохраняйте копии файлов, чтобы потом через тот же MC вернуть их на место. Если файл не сохранили, то можно загрузиться с LIVE CD и вытащить файл оттуда, я так делал не раз.

Были ли проблемы у вас и как вы их решали? Было бы интересно узнать:)

Опубликовано © Просто Linux | Всё про Линукс, Android и Windows.

Восстановление файловой системы Linux после сбоя

Дата: 06 сентября 2010

Сбой файловой системы в linux случается достаточно редко, но лично у меня пару раз такое происходило из-за экстренного выключения ноутбука, вместо традиционного завершения сеанса операционной системы. И, при следующем включении, дистрибутив просто не загружался и выводил ошибку в терминале о неисправности используемого сектора жесткого диска. Если вам приходилось видеть данную ошибку, то, скорее всего, проблема в коренном (чаще всего он и есть поврежденный) секторе файловой системы.

Для выполнения восстановления нам необходим любой современный LiveCD дистрибутив.
Загружаемся в LiveCD и заходим в терминал от имени суперпользователя.
Для восстановление файловой системы в linux используется консольная утилита под названием fsck. Её вызов очень прост даже для новичков в мире linux.

Последовательность действий:
1. Загружаемся с LiveCD дистрибутива linux, содержащего в себе драйвер для работы с вашей файловой системой (например ext4) и собственно утилиту fsck.
2. Заходим в терминал LiveCD под именем суперпользователя. Например, в той-же Ubuntu нужно просто набрать в основной консоли sudo su.

Восстановление системы в Ubuntu

В Debian есть отдельный пункт меню для вызова root консоли. В Gentoo вам вообще ничего не придется делать — после загрузки вы уже под именем root.
3. Если вы не помните путь до поврежденной файловой системы (/dev/sdx), то смотрите на вывод команды fdisk -l и ориентируясь на размер или другие параметры, запоминаете путь до файловой системы (например /dev/sda1).
4. Теперь осталось запустить утилиту восстановления файловой системы командой fsck -fy /dev/sdx , где sdx — имя раздела (например sda1). Опция -f (force) используется для принудительной выполнении проверки. Опция -y (yes) позволяет программе автоматически отвечать "да" на все вопросы в ходе работы.
Также стоит запомнить опцию -t которая задаёт тип файловой системы.
Вот так-бы выглядел запуск проверки диска у меня на ноутбуке:

fsck -fy -t ext4 /dev/sda1

Тип файловой системы обычно определяется автоматически, что еще больше облегчает использование утилиты.
Также будьте аккуратны с разделами, если имеется несколько различных файловых систем, то проверку лучше делать для каждого раздела отдельно!

Архив статей:
Май 2017
Март 2017
Апрель 2016
Март 2016
Октябрь 2013
Сентябрь 2013
Май 2013
Март 2013
Ноябрь 2012
Июль 2012
Июнь 2012
Апрель 2012
Март 2012
Февраль 2012
Апрель 2011
Март 2011
Февраль 2011
Январь 2011
Декабрь 2010
Ноябрь 2010
Октябрь 2010
Сентябрь 2010
Август 2010
Июль 2010
Июнь 2010
Май 2010
Апрель 2010
Март 2010

Случайные:

XRandR: настройка режимов работы с дисплеями (мониторами) в GNU/Linux

Компиляция ядра linux

Уменьшаем время запуска программ с помощью prelink

О серьёзном баге в WIndows версии плеера VLC

Структура директорий в linux

Появилась поддержка голосового и видео чатов Gmail для Linux

Коллеги:    все
 Linux для всех

Наши баннеры:


Установить баннер

Исправляем Systemback в Linux Mint 18

    тЕНПОФ ТБЪТХЫЕООЩИ ЖБКМПЧЩИ УЙУФЕН

рТБЛФЙЮЕУЛЙ ЕДЙОУФЧЕООПЕ УТЕДУФЧП МЕЮЕОЙС ТБЪТХЫЕОЙК ЖБКМПЧПК УЙУФЕНЩ ЧП ЧУЕИ Unix — ХФЙМЙФБ fsck. еУМЙ ОЕ МЕЮЙФ ПОБ, ФП ДЕМП ЧБЫЕ РПЮФЙ ВЕЪОБДЕЦОП. с ВЩ РПУПЧЕФПЧБМ Ч НПТЗ, ОП ЬОФХЪЙБУФЩ НПЗХФ ЕЭЕ ОЕНОПЗП РПДЕТЗБФШУС. рТЙНЕЮБОЙЕ: ЛПНБОДЩ РТЙЧЕДЕООЩЕ Ч РТЙНЕТБИ УМЕДХЕФ ЧЩРПМОСФШ ФПМШЛП ЧОЙНБФЕМШОП ЧЪЧЕУЙЧ ЧПЪНПЦОЩЕ РПУМЕДУФЧЙС. рПЬФПНХ Ч РТЙНЕТБИ ТЕБМШОЩЕ ЙНЕОБ УРЕГЖБКМПЧ ТБЪДЕМПЧ ЦЕУФЛПЗП ДЙУЛБ ЪБНЕОЕОЩ ОБ /dev/hd-name (Ч ТЕБМШОПК ЦЙЪОЙ РТЙНЕОСЕФУС /dev/hda2, /dev/hdb3 /dev/sda1…) фПОЛБС ТЙИФПЧЛБ fs tune2fs РПЪЧПМСЕФ РПНЕОСФШ ОБУФТБЙЧБЕНЩЕ РБТБНЕФТЩ ЖБКМПЧПК УЙУФЕНЩ -c max-mount-counts -m reserved-blocks-percentage Й Ф.Р. tune2fs -m 1 /dev/hd-name # ОБКДЕФ ЧБН ЕЭЕ 50Mb УЧПВПДОПЗП НЕУФБ, # Й РПЪЧПМЙФ ХЮЙОЙФШ ОБ ПУФБЧЫЕНУС ЛМПЮЛЕ # УЧПВПДОПЗП НЕУФБ ЛБФБУФТПЖЙЮЕУЛХА ЖТБЗНЕОФБГЙА уФБОДБТФОПЕ МЕЮЕОЙЕ ЖБКМПЧПК УЙУФЕНЩ: fsck -y /dev/hd-name жПТУЙТПЧБООПЕ МЕЮЕОЙЕ У РТПЧЕТЛПК Й "ЪБНЕЭЕОЙЕН" bad-ВМПЛПЧ fsck -y -c -f /dev/hd-name # -y ОЕЙОФЕТБЛФЙЧОПЕ МЕЮЕОЙЕ "yes" ОБ ЧУЕ ЧПРТПУЩ # -c ОБКФЙ bad-ВМПЛЙ readonly ФЕУФПН Й РЕТЕОЕУФЙ Ч inod bad-ВМПЛПЧ # -f ЖПТУЙТПЧБФШ РТПЧЕТЛХ (ЙЗОПТЙТПЧБФШ ЖМБЗ "fs is clean" еУМЙ РПЗЙВ ПУОПЧОПК УХРЕТВМПЛ, ДПВБЧЙФШ ЛМАЮ -b 8193 ЙМЙ -b 16385 … ХЛБЪБЧ ЪБРБУОХА ЛПРЙА. оПНЕТБ ЪБРБУОЩИ sb УППВЭБЕФ РТЙ ТБЪНЕФЛЕ ТБЪДЕМБ ХФЙМЙФБ newfs. (чЩ ЛПОЕЮОП ЦЕ УПИТБОЙМЙ ЕЕ МЙУФЙОЗ?) тБУРЕЮБФБФШ ТБЪНЕЭЕОЙЕ УМХЦЕВОЩИ УФТХЛФХТ fs Й РБТБНЕФТЩ УХВЕТВМПЛБ НПЗХФ ЛПНБОДЩ tune2fs -l Й dumpe2fs tune2fs /dev/hd-name dumpe2fs /dev/hd-name еУМЙ РПЗЙВМЙ _ЧУЕ_ ЛПРЙЙ УХРЕТВМПЛБ — РПУМЕДОЙК ЫБОУ mke2fs -S РТПРЙУБФШ _ФПМШЛП_ УФТХЛФХТЩ УХРЕТВМПЛПЧ Й ПРЙУБФЕМЙ ЗТХРР, ОЕ ФТПЗБС УБНЙИ ДБООЩИ mke2fs -S /dev/hd-name # Write superblock and group descriptors only fsck -y /dev/hd-name # УТБЪХ ЧУЕД ЪБ ЬФЙН ЪБРХУФЙФШ fsck й ДБЦЕ ЬФП ЕЭЕ ОЕ ЛПОЕГ. дМС УЙМШОЩИ ДХИПН ПУФБЕФУС ПФМБДЮЙЛ ЖБКМПЧПК УЙУФЕНЩ debugfs man debugfs

    рПЧЕДЕОЙЕ Ч БЧБТЙОПК УЙФХБГЙЙ

еУФЕУФЧЕООП, ГЕМЕЕ ВХДЕФЕ, ЕУМЙ ЪБЗТХЪЙФЕУШ Ч single-user mode дМС ЬФПЗП РЕТЕИЧБФЙФШ РТЙ ЪБЗТХЪЛЕ LILO-РТПНРФ (Left-alt) й Ч ЛПНБОДХ ЪБЗТХЪЛЙ ДПВБЧЙФШ РБТБНЕФТ single Lilo: linux single ч linux’ПЧУЛЙК single-user НПЦОП РПРБУФШ ФПМШЛП ЪОБС РБТПМШ root. оЕ ЪОБС РБТПМС, ОБДП ЗТХЪЙФШУС ФБЛ: Lilo: linux init=/bin/sh ЙМЙ ДБЦЕ ФБЛ (ЕУМЙ РПДЗПФПЧМЕОБ rescue-ДЙУЛЕФБ У ЖБКМПЧПК УЙУФЕНПК unix) Lilo: linux init=/bin/sh root=/dev/fd0H1440 рЕТЕНПОФЙТПЧБФШ ЛПТОЕЧПК ТБЪДЕМ ЙЪ readonly Ч write mount -t ext2 -n -o remount,rw /dev/hd-root / уНПОФЙТПЧБФШ ТБЪТХЫЕООХА fs, ЙУРПМШЪХБС БМШФЕТОБФЙЧОЩК УХРЕТВМПЛ mount -t ext2 -o sb=8193,nocheck /dev/hd-name /mntname рДТПВОПУФЙ (ЧЩ ВХДЕФЕ УНЕСФШУС): man mount

    Linux: ЖБКМПЧБС УЙУФЕНБ ext2 Й ext3: UNDELETE/UNERASE

Design and Implementation of the Second Extended Filesystem http://web.mit.edu/tytso/www/linux/ext2intro.html Linux Ext2fs Undeletion mini-HOWTO http://www.tldp.org/HOWTO/Ext2fs-Undeletion.html Origin http://lde.sourceforge.net/UNERASE.txt I imagine that most of the people initially using this package will be the ones who have recently deleted something. After all, that’s what finally inspired me to learn enough about the different file systems to write this package. Undelete under unix really isn’t that hard, it really only suffers the same problems that DOS undelete does which is — you can’t recover data that someone else has just overwritten. If you are quick and have very few users on your system there is a good chance that the data will be intact and you can go ahead with a successful undelete. I don’t recommend using this package to undelete your /usr/bin directory or really any directory, but if you have trashed a piece of irreplaceable code or data, undelete is where it’s at. If you can reinstall or have recent backups I’d recommend you try them. But it’s up to you, besides, sometimes playing with lde/undelete for a while is a lot more fun than going back and recoding a few hours worth of lost work. Before I tell you how to undelete stuff, have a look at doc/minix.tex (or the ps or dvi version). Even if you aren’t using a minix file system, read it carefully, it will get you used to the terms and the general idea behind things here. These are the steps for a successful undelete: ######################### STEP ONE ################################## Unmount the partition which has the erased file on it. If you want to, you can remount it read-only, but it isn’t necessary. NOTE: lde does some checks to see if the file system is mounted, but it does not check if it was mounted read-only. Some functions will be deactivated for any (read-only or read/write) mounted partition. ######################### STEP TWO ################################## Figure out what you want to undelete. If you know what kind of file you are looking for (tar file, compressed file, C file), finding it will be a lot easier. There are a few ways to look for file data. lde supports a type search and a string search for data at the beginning of a file. Currently, the supported types include gz (gzip), tgz (tarred gzip file), and script (those beginning with "#!/"). —- EXAMPLE —- String search (search for a PKzip file — starts with PK, -O 0 not required): lde -S PK -O 0 /dev/hda1 String search (search for JPEG files — JIFF starts at byte 6): lde -S JIFF -O 6 /dev/hda1 Type search (search for a gzipped tar file): lde -T tgz /dev/hda1 ——————- When searching by type, you can also include the filename; the desired pattern will be extracted from the file. You should specify an offest (-O) and length (-L) when using this option. This option was included to make generalized searches easier. You can find pattern, length, and offset information in /etc/magic which you can use to generate your own template files, or specify lengths and offsets so that existing files may be used as templates. —- EXAMPLE —- Type search (search for core file — see /etc/magic to determine -O/-L): lde -T /proc/kcore -O 216 -L 4 /dev/hda1 —————— If you add —recoverable to the command line, it will check to see if another active inode uses any blocks in this inode. If no blocks are marked used by another inode, "recovery possible" will be printed. If blocks are used by another file "recovery NOT possible" will be printed to the screen.

Как восстановить линукс

You may still be able to get some data back even when it reports that recovery is not possible. To get an idea of how many blocks are in use, you will have to check its recoverablilty from lde via its curses interface. —- EXAMPLE —- ./lde —paranoid -T script —ilookup —recoverable /dev/hda5 —- OUTPUT —- Paranoid flag set. Opening device "/dev/hda5" read-only. User requested autodetect filesystem. Checking device . . . Found ext2fs on device. Match at block 0x107, check inode 0xB, recovery possible. Match at block 0x421E7, no unused inode found. —————— When you run lde in these mode, it will report a block (and inode if you are lucky and used the —ilookup flag) where a match was found. Take this inode number and go to step (3). If lde doesn’t report anything on its own, or the search detailed above does not suit your needs, you can use grep to search the partition for data and pipe it through lde which will attempt to find a block and inode again. The recommended procedure (all this can go on one line, the ‘\’ indicates continuation) is: grep -b SEARCH DEVICE | awk ‘{FS = ":" } ; {print $1 }’ | \ lde ${LDE_OPT} —grep DEVICE A shell script (crash_recovery/grep-inode) is included that will do this for you. grep-inode search_string device —- EXAMPLE —- grep-inode -i MyDevelopment.h /dev/hda1 —————— If none of these search methods are productive, you can page through the disk with an editor (emacs /dev/hda2) or the preferred choice might be to page through it with lde. Fire up lde and go into block mode (hit ‘b’) then use PG_UP/PG_DN to flip through all the blocks until you find one you like. Hitting ‘^R’ while displaying the block will attempt to find an inode which references the block. ######################## STEP THREE ################################# If you have an inode number, things are looking good. Go into inode mode and display this inode. Then hit ‘R’ (use capital ‘R’) to copy the inode information to the recovery block list and enter recovery mode. Now hit ‘R’ again and lde will prompt you for a file name (you can include a full path). Make sure you write it to a FILE SYSTEM OTHER THAN THE ONE WHICH THE DELETED FILE RESIDES ON or you will probably overwrite it as you go. One day, when lde supports disk writes, it will be able to undelete the file to its original location, but for now this is safer. The recovered file will be a little larger than the original as the last block will be padded with zeroes (or whatever was on the disk at the end of the last block). If you did find an inode for the deleted file, you can copy its old size to the new inode by using lde to edit the two inodes (don’t use lde’s copy/paste as it will copy the entire inode and undo all the work you just did to restore the file). ###################### OTHER OPTIONS ################################ If you were unable to find an intact inode, things are going to be tough. You will have to find all the blocks in the file in order. If your disk is relatively unfragmented, you can hopefully find everything in order or close by at least. Currently, you have to tag all the direct blocks, then find the indirect blocks and tag them. If the indirect block was wiped or you are unable to find it, you’ve got a lot of work to do. You can copy individual blocks one at a time to the recovery file by using ‘w’ in block mode. Display the next block in the file, hit ‘w’, then enter the filename (if you hit enter, the last filename will be reused and the block will be appended to the file). lde will always ask if you want to append, overwrite, or cancel when a file exists. You can override this by setting the append flag from the flags menu (‘f’ from most modes). If you find any type of indirect block, you can copy it to the recovery inode in its corresponding position and recover a whole bunch of blocks at once. Leave the direct blocks filled with zeros. Another option is to use dd. Real programmers still probably use emacs and dd to hack a fs. 😉 If you know there are a bunch (one or more) of contiguous blocks on the disk, you can use the unix command dd to copy them from the device to a file. —- EXAMPLE —- To copy blocks 200-299 from the device /dev/hda1 to /home/recover/file1: dd if=/dev/hda1 of=/home/recover/file1 bs=1024 count=100 skip=200 if input file or device of output file or device bs blocksize (will be 1024 for most linux fs’s) count number of blocks to copy skip number of blocks to skip from the start of the device —————— Read the dd man page for more info. #################### ABOUT INDIRECT BLOCKS ########################## > 1 — install a routine that lets you read what the indirect blocks > are pointing to in the chain, I mean, I know that file X has 2 > indirect blocks but what blocks do these point to and how do I find > out? This is hard to describe, but if you have figured out how to use inode mode any you are looking at the blocklist contained in that inode (it should list all the direct blocks and the 1x, 2x, and 3x indirect blocks), when you hit ‘B’ when the cursor is sitting on the 1x indirect block, it will take you to that block in block mode, then each entry in that block (most likely each entry is 4 bits — as in the ext2 fs) points to another block in the chain. I.E. INDIRECT BLOCK: 0x000200 Now look at block 0x000200 0000: 01 00 00 00 02 00 00 00 : 04 04 04 00 10 01 00 00 This would indicate the the next 4 blocks in the file are 0x00000001, 0x00000002, 0x00040404, 0x00000110 The same is true for double indirect blocks, but the double indirect blocks contains pointers to more indirect block which you must then look up as above. That was a pretty lousy explaination, someday I do plan to add a feature where you may view all the blocks in a file without doing the indirect indexing yourself. For now, lde is mostly a crutch for last ditch efforts at file recovery, but I’m glad if people find other uses for it. ################# RECOVERING WITHOUT INODES ####################### In a perfect world, or on a virgin disk, everything would be sequential. But with things like unix and (network) file sharing, many people can write to the disk at the same time, so the blocks can get interleaved. Also depending on the free space situation of the disk, the two free blocks may not exist sequentially on the disk. Also, there are file "holes" in ext2 where there are block pointers of zero on the disk. Normally an indirect block would point to 256 direct blocks, but with zero entries it may be less than this. If things are perfect, here is how I imagine your disk is layed out: Direct blocks 1-9: you already know where these are and they are in that tiny recovery file (9k). These were not sequential, so it makes me wonder if the rest of the bytes will be layed out in order. Indirect block: This takes up one block and ideally your data would start right after it. 256 blocks of data: 2x indirect block: Should only have one entry, pointing to the next block on the disk indirect block: pointed to by the 2xindirect block 88 blocks of data: So my last ditch recommendation is to use dd to copy the blocks off the disk and then cat all the dd’ed files together. 0x5e65e — 0x5e660 | 0x61a72 | 0x5e661 +— These are the direct blocks, you could 0x61ad4 | use the lde recovered file instead of 0x5e662 — 0x5e664 | dd + cat. 0x5e665 — 0x5e764 — 256 blocks of data 0x5e750 — 0x5e7a8 — 88 blocks of data Things look bad becuse the numbers are out of sequence (those 256 blocks of data should end right before the 2x indirect block at 0x5e74 there’s 0x10 blocks unaccounted for (maybe this is just some of the ext2 file system data which is dispersed about the disk — it could fall anywhere in that data range if it’s there). So try: —- EXAMPLE —- lde (recover direct blocks to /home/recover/block1) dd if=/dev/sdb1 of=/home/recover/block2 bs=1024 count=256 skip=386661 dd if=/dev/sdb1 of=/home/recover/block3 bs=1024 count=88 skip=386896 cat block.1 block2 block3 > access_file.dos —————— #################### TRIPLE INDIRECT BLOCKS ######################### lde allows you to append a single block to the recover file (use ‘w’ from block mode) — you can page through the triple indirect blocks to figure out the block order and then write each block to the recover file. I.e. after piecing things together from the triple indirect block, you should have a list of all the blocks in the file, now display the first block on the screen, write it to the file, display the second block, write it to the file . . . I really don’t think it’s worth it for 145,000 blocks though. The semi-automated way to do this is to make some fake inodes. The triple indirect inode should be pretty empty — maybe 3 entires. Each of these entries points to a double indirect block. Solution: 1) Recover any direct/indirect/double indirect blocks in the original inode to a file. Do this with lde. 2) Look at the triple indirect block. It should have 3 entries. Write down the 3 double indirect blocks listed here. 3) Use the recover mode fake inode, fill in all entires with zeroes. Now fill in the 1st double indirect block that you wrote down in step 2 in the slot for the 2x indirect block. 4) Execute a recover, dump it to a file, say "file1". Repeat step 3 with the other two double indirect inodes from step 2. 5) Now you should have 4 files, catenate them all together and with any luck, it will un-tar. рПРХМСТОПУФШ: 100, Last-modified: Mon, 01 Dec 2003 17:59:31 GMT

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *