8 советов для решения проблем с диском Linux и Unix

Сразу отметим, что данный материал по большей мере будет теоретическим, направленным на новичков, на формирование общего представления. Поэтому мы рассмотрим общие, самые важные положения о файловой системе «Линукс». Тонкости работы с какой-либо ее разновидностью, непосредственные команды — это уже иная тема разговора. Наша задача — разобраться, что это такое, как функционирует данная система.

ⓘ Fsck

fsck используется для проверки и, в случае необходимости, исправления ошибок одной или нескольких файловых систем. filesys может быть именем блочного устройства например, /dev/sda7, точкой монтирования, /mnt/sda7 и т. д. этого устройства, меткой раздела или UUID-индексом. Обычно fsck параллельно проверяет данные на разных физических дисках, чтобы сократить общее время, необходимое для полной проверки всех дисков.

Если файловых систем не указано и не указана опция -A, то fsck по порядку проверит файловые системы, указанные в /etc/fstab. Это эквивалентно опции -As. Код, возвращаемый fsck, является суммой следующих условий:

Код, возвращаемый fsck при проверке нескольких файловых систем, получается с помощью применения побитовой операции ИЛИ к кодам, возвращаемым каждой проверкой.

Фактически fsck представляет собой оболочку для различных средств проверки файловой системы. На Linux программа для проверки конкретной системы ищется последовательно в /sbin, /etc/fs, /etc и в каталогах, указанных в переменной окружения $PATH. На Solaris программа для проверки конкретной системы fsck ищется в каталогах /etc/fs/ / и /usr/lib/fs, например /usr/lib/fs/ufs/fsck.

Так что же делать при отказе файловой системы?

В большинстве случаев след. команда поможет решить проблемы. Сначала запустите e2fsck с опцией -f для проверки ext2/ext3/ext4 файловой системы Linux:

# e2fsck -f /dev/sda3

  • -f – принудительная проверка
  • /dev/sda3 – раздел /home ( у вас может быть по другому, поэтому для начала введите fdisk -l, чтобы узнать свои разделы.)

Обратите внимание, если суперблок не найден, то e2fsck завершится с фатальной ошибкой (fatal error). Однако Linux поддерживает несколько резервных копий суперблока, в каждой файловой системе. Так что можно попробовать использовать опцию -b (альтернативный суперблок). Расположение копии суперблока зависит от размера блока файловой системы:

  • для файловой системы с размером блока = 1k, backup суперблока можно найти в 8193 блоке
  • для файловой системы с размером блока = 2k, в 16384 блоке
  • для файловой системы с размером блока = 4k , в 32768 блоке

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

# mke2fs -n /dev/sdaX

  • -n — определения местоположения резервного суперблока

ИЛИ

# dumpe2fs /dev/sdaX | grep -i superblock

Узнать больше о dumpe2fs и mke2fs:

$ man dumpe2fs $ man mke2fs

Для восстановления файловой системы с альтернативным суперблоком используйте след. команду:

# e2fsck -f -b 8193 /dev/sda3

  • -f – принудительная проверка
  • -b – использовать альтернативный суперблок

Перед запуском команды fsck настоятельно рекомендуется сделать backup. Для backup’a можно использовать след. команду:

# dd if=/dev/sda2 of=/disk2/

Узнать больше о команде dd:

$ man dd

1: Восстановление с помощью ядра fsck

Примечание: Новые дистрибутивы (FreeBSD, CoreOS, Debian 8 и Ubuntu ) не могут использовать ядро восстановления. Если вы пользуетесь одним из этих дистрибутивов, переходите к разделу «Восстановление с помощью ISO».

Первое, что нужно сделать, чтобы восстановить систему после повреждения, — смонтировать ядро восстановления, которое позволит запустить утилиту проверки файловой системы fsck. Это может помочь найти и исправить ошибки в файловой системе.

Запуск fsck

Сначала отключите сервер. Для этого введите в командную строку:

Также это можно сделать с помощью панели управления. Нажмите Power Off или аналогичный вариант.

Отключив сервер, перейдите в настройки и откройте раздел восстановления. Запишите, какое ядро использует сервер, чтобы вернуть все на места после восстановления. Затем смонтируйте ядро восстановления (кнопка Mount Recovery Kernel или подобная).

Изменив ядро, запустите сервер.

Затем подключитесь к серверу через консоль. На данный момент SSH-доступ к серверу, скорее всего, отсутствует, поскольку сервер использует ядро восстановления.

В текущем окне откроется сессия терминала, и вы получите доступ к среде Linux.

Теперь нужно запустить fsck, чтобы найти и исправить ошибки в файловой системе.

Способ вызова этой команды будет зависеть от того, поддерживает ли сервер VirtIO. Если да, то жесткий диск сервера, скорее всего — /dev/vda или /dev/vda1 (в зависимости от системы). Вы можете уточнить это, набрав:

Если сервер не поддерживает VirtIO, жесткий диск находится в /dev/sda.

Итак, вам нужно запустить команду:

fsck -yf /dev/vda

fsck -yf /dev/vda1

Читайте также:  9 советов для быстрой работы в UNIX и Linux терминале

Утилита fsck запустится и попытается обнаружить ошибки. После этого можно снова отключить сервер.

Вернитесь в панель управления, откройте настройки и найдите параметры ядра. В выпадающем меню выберите ядро, которое использовалось ранее.

Проверка результатов

Изменив ядро, запустите сервер и подключитесь к нему через консоль.

Если сервер раньше не запускался, а теперь запустился – это хороший знак.

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

Также важно проверить каталог /lost+found. В него fsck помещает частично восстановленные файлы.

Иногда fsck может восстановить данные файла, но не может найти ссылку на файл в файловой системе. По сути, это файл без имени. В такой ситуации fsck помещает файлы в каталог /lost+found, чтобы вы могли попытаться вручную определить, что это за файл.

Просмотрите содержимое каталога /lost+found:

cd /lost+found ls

Если в каталоге есть файлы, откройте каждый из них и попробуйте понять, что это за файл. Часто сюда попадают удаленные файлы, которые использовались до сбоя системы.

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

Описание [ | ]

fsck используется для проверки и, в случае необходимости, исправления ошибок одной или нескольких файловых систем. filesys может быть именем блочного устройства (например, /dev/sda7), точкой монтирования (/, /mnt/sda7 и т. д.) этого устройства, меткой раздела или UUID-индексом. Обычно fsck параллельно проверяет данные на разных физических дисках, чтобы сократить общее время, необходимое для полной проверки всех дисков.

Если файловых систем не указано и не указана опция -A, то fsck по порядку проверит файловые системы, указанные в /etc/fstab. Это эквивалентно опции -As. , возвращаемый fsck, является суммой следующих условий:

, возвращаемый fsck при проверке нескольких файловых систем, получается с помощью применения побитовой операции ИЛИ к ам, возвращаемым каждой проверкой.

Фактически fsck представляет собой оболочку для различных средств проверки файловой системы. На Linux программа для проверки конкретной системы ищется () последовательно в /sbin, /etc/fs, /etc и в каталогах, указанных в переменной окружения $PATH. На Solaris программа для проверки конкретной системы (fsck) ищется в каталогах /etc/fs/<fstyp>/ и /usr/lib/fs/<fstyp>/, например /usr/lib/fs/ufs/fsck.

Описание [ править]

fsck используется для проверки и, в случае необходимости, исправления ошибок одной или нескольких файловых систем. filesys может быть именем устройства (например, /dev/sda7), точкой монтирования этого блочного устройства (/, /mnt/sda7 и т. д.), меткой раздела или UUID индексом. Обычно fsck параллельно проверяет данные на разных физических дисках, чтобы сократить общее время, нужно для полной проверки всех разделов.

Если файловых не указано, и не указана опция -A, то fsck по порядку проверит файловые системы, указанные в /etc/fstab. Это эквивалентно опции -As. Код, возвращаемый fsck, является суммой следующих условий:

Код, возвращаемый fsck при проверке нескольких файловых систем, получается с помощью применения побитовой операции ИЛИ к кодам, возвращаемым каждой проверкой.

Фактически, fsck представляет собой оболочку для различных средств проверки файловой системы (). Программа для проверки конкретной системы ищется последовательно в /sbin, /etc/fs, /etc и в директориях, указанных в переменной окружения $PATH.

Основополагающие функции системы

Реклама

Разбирая файловую систему «Линукс» для начинающих, подробно остановимся на ее задачах. Основная функция: предоставление организованных пространств для хранения информации, файлов на запоминающем энергонезависимом устройстве. Из этого утверждения вытекает ряд дополнительных задач.

Вам будет интересно:Графические оболочки Linux: определение, виды, характеристики, ресурсоемкость, инструкция по установке, особенности запуски и нюансы смены оболочки

Все файловые системы обязательно обеспечивают пространство имен. Именно оно определяет, как будут именоваться файлы, устанавливают ограничения на длину названия, использование определенных символов. Отвечает за логическую структуру информации на диске. Пример: использование каталогов именно для организации файлов, а не для простого складирования.

Реклама

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

  • Структура данных для составления иерархии каталогов.
  • Структура для хранения как занятых, так и свободных блоков на диске.
  • Структуры с названиями каталогов и файлов.
  • Важная информация о документах: размер, расположение файла на диске, время его создания и проч.

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

Для доступа к документам необходим комплекс функций под названием API. С его помощью программы приобретают возможность управления различными объектами файловой системы. Существуют методы для создания, удаления и перемещения документов.

Вам будет интересно:Программа для восстановления данных на "Андроиде"

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

Проблема с дескриптором

Иногда, DF команда сообщает, что есть достаточно свободного места, но система утверждает, файловая система заполнена. Вы должны проверить inode, которые идентифицируют файл и его атрибуты на файловых системах с помощью следующей команды:

Читайте также:  Office 2019 против Office 365: что лучше

Shell df -i df -i /users/

12 df idf i /users/

Если 100% ваших дескрипторов используются, попробуйте следующие варианты:

  • Найти ненужных файлов и удалять или перемещать на другой сервер.
  • Найти нежелательные большие файлы и удалить или переместить на другой сервер.

Выводы

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

Примечание. Изменение размера файловой системы на разделе диска может быть опасным и привести к потере данных. Убедитесь, что у вас есть резервная копия, прежде чем выполнять действия, описанные ниже.

Предостережения

1. Файловая система, размер которой вы хотите изменить, должен находиться на последнем разделе диска. В этом случае потери данных не происходит, поскольку мы воссоздаем раздел, не уничтожая фактические данные на нем. 2. Если это не последний раздел, вы должны уничтожить данные и воссоздать новый раздел с желаемым размером.

Расширение файловой системы на основе разделов

Выводы

1. Сначала проверьте существующий размер файловой системы.

Устанавливаю Ubuntu рядом с Windows 7, причем хочу, чтобы не потерялись данные. Проблема возникает на этапе уменьшения размера диска, чтобы создать раздел для ubuntu. Пробовал изменять файловую систему как во время установки, так и через GParted , загрузившись в Ubuntu. Вот текст ошибки:

Как-то странно разделы отображаются в Ubuntu: разделы D, E, L выглядят как один. В разделе L у меня 60 Гб свободно, а я уменьшаю объем на 40.

Всего у меня 6 разделов в Windows: зарезервированный для Bitlocker 1 мб, зарезервированный системой 100 мб, раздел с системой (диск С в wibdows) и 3 пользовательских раздела. В Linux же я вижу только 4. Что я делаю не так и как создать раздел для Linux без потерь данных?

Исправление ошибок файловой системы Ubuntu «Файловая система доступна только для чтения»

Операционная система Убунту хоть и превосходит по некоторым параметрам Windows, но тоже способна портить пользователю настроение, выдавая ошибки. Одна из таких — недоступность файловой системы.

Причём касается это как обычных флешек, так и жёстких дисков в некоторых ситуациях. Решить проблему можно. Однако и опытные пользователи не всегда знают, как исправить ошибку, когда Ubuntu выдаёт: «Файловая система доступна только для чтения».

Ответ мы постарались дать в этой статье.

Причин возникновения проблем с доступом к файлам в Ubuntu может быть несколько.

Неисправность носителя

Исправление ошибок файловой системы Ubuntu «Файловая система доступна только для чтения»

В первую очередь стоит проверить, точно ли исправна эта файловая система. В случае с флеш-картой сделать это легко. Попробуйте открыть её с компьютера на Windows. Другая система может быстро найти неполадки на накопителе. То же самое касается карт памяти, китайских плееров и других дешёвых носителей информации. Часто дело может быть в них.

В случае, когда проблемным является жёсткий диск, выполнить проверку будет гораздо труднее. Если на вашем компьютере стоит две системы, проверьте, исправно ли работает ваш HDD на Windows. Эти способы позволят определить очаг неисправности.

Форматирование

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

С диском навряд ли у кого-то поднимется рука совершить такое. Форматирование может уничтожить много важной информации. Тем более, если повреждена файловая система Ubuntu, проблему надо искать в другом месте.

Проверка на наличие ошибок

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

Просматриваем список накопителей:

fdisk –l

Исправление ошибок файловой системы Ubuntu «Файловая система доступна только для чтения»

Проверяем конкретный накопитель:

hdparm -i /dev/sdf | grep Model

В примере взят sdf, но у вас название диска может отличаться.

Если том был примонтирован, то перед тем, как проверять, это действие нужно отменить:

umount /dev/sdf1

Теперь проверяем том на бэдблоки — проблемные области:

badblocks -s /dev/sdf1 > /root/badblock

Прогресс выполнения будет отображаться в процентах.

Теперь отмечаем бэдблоки, чтобы система перестала их использовать:

Исправление ошибок файловой системы Ubuntu «Файловая система доступна только для чтения»

e2fsck -l /root/badblock /dev/sdf1

Такой способ в теории должен помочь исправить неполадки с любыми видами носителей. Если же сканирование дисков на ошибки не помогло, то пора воспользоваться удобной утилитой — GParted.

GParted

  1. Для начала эту программу необходимо установить. Сделать это легко при помощи команды:sudo apt-get install gparted
  2. Открываем GParted. Перед нами будут выведены все носители.

    Среди них должен быть и проблемный недоступный — если утилита увидит ошибки, то она пометит его восклицательным знаком.

  3. Теперь открываем наш диск и нажимаем на кнопку «Раздел», расположенную сверху.
  4. В выпавшем меню выбираем «Проверка на ошибки».

    Программа отсканирует диск и, возможно, найдёт неполадки, после чего файловая система станет доступной не только для чтения.

Права доступа

Наконец, последняя причина, по которой мы теряем доступ к управлению данными на носителях, заключается в нарушенных правах. С ней могут сталкиваться и опытные юзеры, использующие root-режим. Когда мы используем различные команды, не до конца понимая их суть, или запускаем программы с расширенными полномочиями, система может по ошибке перекрыть доступ.

После чего мы видим сообщение от Ubuntu: «Файловая система доступна только для чтения». Убрать такую неполадку помогут специальные команды.

В качестве универсального метода здесь подойдёт команда:

sudo chown -R [user]:[user] /home/[user]

Исправление ошибок файловой системы Ubuntu «Файловая система доступна только для чтения»

Вместо [user] необходимо вписать имя пользователя. Команда chown отвечает за смену прав доступа к папке. Атрибут –R означает, что этот раздел пользователь может только читать. Sudo отменяет эти изменения. В примере проблема заключалась в домашнем разделе, если у вас проблемы с флешкой, то следует вписать её директорию.

Файловая система Убунту работает немного по другим принципам, нежели на Windows. Поэтому любые диски под её управлением ведут себя по-другому. Из-за этого возникают и новые ошибки, с которыми на Винде нельзя столкнуться.

Теперь мы знаем, как решить проблему, касающуюся неполадок с редактированием дисков. Дело может быть как в неисправности устройств, так и в неправильном определении прав. Главное — правильно определить неполадку и исправить её. Благо, это не самая серьёзная из всех ошибок, хотя она и может доставить пользователю неприятности.

Кали не загружается: чёрный экран initramfs

Компьютер76 » Linux » Кали не загружается: чёрный экран initramfs.

В статье рассмотрена ошибка загрузки Кали Линукс,  сопровождающаяся появлением командной строки от имени initramfs и требующей от пользователя неких действий. Рассмотрим наиболее часто встречающиеся варианты решения проблемы и возможные причины.

Симптомы проблемы

Как я уже говорил, причин несколько, но практически все они связаны с повреждением файловой системы и исправляются проверкой тома, где расположен загрузчик Кали.

Справочка 

Без неё никак. Initramfs – это полноценный набор директорий, который вы найдёте в корневой файловой системе. Он упакован в архив специального формата и сжат с помощью специального алгоритма. В момент загрузки системы загрузчик выгружает ядро и образ initramfs в память.

Ядро проверяет присутствие initramfs и, обнаружив, монтирует его в символ / , запуская /init. Init представляет собой обычно шел-скрипт, а потому процесс загрузки с помощью init достаточно продолжительный, но в нашем случае обязательный: он создаёт возможность загружаться с локального тома, запароленный вход и т.д.

Однако любой сбой в части блоков initramfs  автоматически “ломает” ядро системы, вызывая ошибку загрузки.

Ошибка initramfs-tools: синий Рабочий стол Кали Линукс без значков

Проблема initramfs : вариант первый

Внимательно изучаем окно терминала. В числе прочих строк обнаруживается запись типа:

/dev/sda*: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.

обратите внимание на номер тома в начале строки /dev/sda* , где вместо * цифра тома, требующего ручного запуска проверки диска. Так тут же, в терминале и наберите:

fsck /dev/sdaX -y

или диск целиком (тоже вариант, но если у вас на жёстком ещё и Windows на NTFS, то советую лучше не рисковать):

fsck -f / -y

Кали не загружается: чёрный экран initramfs

где

  • Х – номер вашего тома с Линукс
  • -y – разрешение на проведение операции

Перезагружаемся и входим в систему обычным порядком.

Проблема initramfs : вариант второй

Этот вариант (через Китай, но есть возможность проверить результаты работы) подсмотрен на форуме Ubuntu-водов. Вам понадобится загрузочная флешка с Кали Линукс. Запускаем живую Кали и в окне терминала вводим команду:

fdisk -l|grep Linux|grep -Ev 'swap'

Отображаем список суперблоков:

dumpe2fs /dev/sda* | grep superblock

не забываем заменить символ * на цифру тома с Линукс на жёстком диске. Сейчас терминал вернёт вот это:

Я выделил номера резервных суперблоков, их мы и будем использовать в качестве альтернативы побитым. Выбираем любой (я беру второй за номером 98304):

fsck -b 98304 /dev/sda* -y

После исправления пробуем смонтировать побитый раздел и проверить, восстановлена ли файловая система (вводите команды по отдельности):

mount /dev/sda* /mntcd /mntmkdir testls -lcp file /path/to/safe/location

Если термина не ругается, у вас всё получилось. Перезагружайтесь и входите в системы обычным порядком.

Проблема initramfs : вариант третий

Проблема повторяется всякий раз после перезагрузки. Однако, обратите внимание. Если терминал с initframs преследует вас ИМЕННО ПОСЛЕ РАБОТЫ В WINDOWS, советую вам повторить любой из шагов, который вернул вам нормальную загрузку, но в этот раз:

  • отправляемся не в Кали, а прямиком в Windows
  • обнаруживаем ВСЕ ПРОГРАММЫ, которые позволяют читать файловую систему ext* из Wind-овой NTFS. По личному опыту скажу: 99% возвращающейся ошибки initframs являются драйверы таких программ, которые загружаясь с Windows, “наводят порядок” на томе с Кали, даже если вы такую программу и не запускаете вовсе. В любом случае утилит, позволяющих попасть в Кали из Windows, несколько. Выберите ту, которая не вызывает вываливания в BusyBox с initframs.
  • нашли и удалили? Запускаем проверку диска с Windows с перезагрузкой:

chkdsk C: /F/R/X/B

Уверен, она не помешает. Успехов.