Bad superblock on dev

Bad superblock on dev

Welcome to LinuxQuestions.org, a friendly and active Linux Community.

You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!

Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.

Are you new to LinuxQuestions.org? Visit the following links:
Site Howto | Site FAQ | Sitemap | Register Now

If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.

Having a problem logging in? Please visit this page to clear all LQ-related cookies.

Introduction to Linux — A Hands on Guide

This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter. For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author’s experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.

Что такое суперблок в Линуксе. Попробуем разобраться на примере файловой системы ext(2|3|4), которая используется в линуксе по-умолчанию. Но для начала рассмотрим несколько простых понятий

Блок файловой системы

После форматирования диска или раздела сектора на диске разделены на небольшие группы. Такая группа секторов называется блоком. Размер блока может быть разным и задается как параметр ключа команды форматирования. Например

ключ -b задает размер блока в байтах, в данном случае размер блока будет 4096 байт

Читайте также:  Hmd global ta 1053 что это

Размер блока может быть разным. Это зависит от типа файловой системы

  • Ext2 — 1Кб, 2Кб, 4Кб, 8Кб
  • Ext3 — 1Кб, 2Кб, 4Кб, 8Кб
  • Ext4 — от 1Кб до 64Кб

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

  • Максимальный размер файла
  • Максимальный размер файловой системы
  • Производительность

Размер блока влияет на скорость чтения/записи с диска. Представим себе файл размеров в несколько сот мегабайт, который считывается с диска блоками по 1Кб. Тот же файл будет считываться быстрее если размер блока файловой системы будет 4Кб или 8Кб. Это ясно. Поэтому при форматировании имеет смысл задать блок большего размера, если планируется использовать файлы большого размера

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

Ядро Linux работает с размером блока файловой системы, а не с размером сектора диска (обычно 512 байт). Важно понимать, что размер блока файловой системы не может быть меньше размера сектора диска и всегда будет кратным ему. Также ядро ожидает, что размер блока файловой системы будет меньше или равно размеру системной страницы

Размер системной страницы можно увидеть выполнив команду

Группы блоков файловой системы

Блоки, о которых мы говорили ранее обьеденяются в группы блоков, что позитивно отражается на операциях чтения/записи так как уменьшается время чтения/записи больших обьемов данных

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

Загрузочный блок Группа блоков 1 Группа блоков 2 Группа блоков 2 Группа блоков 3

Количество блоков в группе неизменно и может быть расчитано по формуле

Взглянем на вывод команды mke2fs

Отметим то, о чем говорили выше

  • Размер блока 4096 байт
  • 800 блоковых групп
  • 32768 блоков в группе (8*4096)

Также видны блоки в которых хранятся резервные копии суперблока

Так что же такое суперблок?

Самым простым определением суперблока могло бы быть следующее утверждение

Суперблок — это блок в котором хранятся метаданные файловой системы

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

Читайте также:  Adobe premiere pro требования к системе

Некоторые данные, которые хранятся в суперблоке. Например

  • Количество блоков в файловой системе
  • Количество свободных блоков в файловой системе
  • Количество i-нод в блоковой группе
  • Блоки в блоковой группе
  • Количество запусков файловой системы со времени последней проверки fsck
  • UU >Основная копия суперблока хранится в самой первой группе блоков. Она названа основной, потому что считывается системой в процессе монтирования файловой системы. Так как отсчет блоковых групп начинается с 0 то можно говорить о том, что суперблок хранится в начале блоковой группы 0

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

Может показаться, что наличие в каждой блоковой группе резервных копий суперблока приводит к потреблению большого дискового пространства. Для этого в последних версиях систем была реализована функция «sparse_super» целью которой было создание резервных копий в группе блоков 0, 1, 3, 5, 7

Как увидеть, что хранится в суперблоке?

Для этого воспользуемся командой dumpe2fs

Еще один вывод команды показывает информацию о суперблоке

Как восстановить поврежденный суперблок?

Для начала нужно проверить файловую систему утилитой fsck

В случае если fsck обнаружила ошибку чтения суперблока можно попробовать сделать следующее:

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

ключ -n говорит команде не создавать файловую систему, но показать вывод какой мог бы быть при реальном создании файловой системы

Далее восстановливаем суперблок из бекапа при помощи e2fsck

В данном случае в блоке 819200 хранится резервная копия суперблока. После применения команды пробуем снова монтировать файловую систему. Либо как вариант использовать ключ sb команды mount, который указывает на расположение копии суперблока

Читайте также:  Fallout 4 дергается изображение

В данном случае считываем копию суперблока из блока 819200

Проблемы при монтировании привода с различными типами CD-DVD дисков. Error mounting system-managed device /dev/sr0: Command-line `mount "/media/cdrom0"’ exited with non-zero exit status 32: mount: wrong fs type, bad option, bad superblock on /dev/sr0, missing codepage or helper program, or other error. In some cases useful info is found in syslog — try dmesg | tail or so.

В /etc/fstab имеем строку:

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

При попытке открыть в файловом менеджере "Thunar 1.6.11" кликнув по серому/блеклому значку привода на рабочем столе:

Список доступных "fs type" мы можем глянуть выполнив ls /lib/modules/$(uname -r)/kernel/fs

Успешно сработало ручное монтирование с явным указанием файловой системы:

Поменяв в /etc/fstab местами перечень файловых систем с " udf,iso9660 " на " iso9660,udf " проблемный DVD-диск стал успешно монтироваться как из консоли так и при открытии его в файловом менеджере, — однако перестали монтироваться обычные CD-диски в формате " iso9660 " 🙂

Сейчас я процитирую, как позже выяснится, юзера Daniel рапортовавшего про сей баг ещё в далёком 2006-м году: "Складывается такое впечатление, что только последняя запись из списка fstype разделённых запятыми работает"

After mounting it shows a perfectly mounted udf file system.
/dev/hdc on /media/cdrom0 type udf (ro,noexec,nosu >
By the way: Changing fstype in /etc/fstab to "iso9660,udf" (turning it around) makes udf dvd work and iso9660 file systems like normal CDs don’t work anymore.

So it seems that only the last entry of the comma-separated fstype list works.

Решением проблемы является замена в /etc/fstab fstype с " iso9660,udf " на " auto " и да прибудет нам счастье. Возможности своего CD-DVD можно посмотреть коммандой wodim -prcap

Ссылка на основную публикацию
Adblock detector