Корневая файловая система Linux: каталоги и команды. Как восстановить файловую систему флешки? Не удается определить файловую систему для диска




Современные накопители на основе флеш-памяти имеют большие объёмы и высокую скорость чтения-записи, благодаря новому протоколу передачи данных USB 3.0. Они практически вытеснили другие внешние носители информации, так как их удобно и просто использовать. Флеш-диски не требуют дополнительных устройств или переходников для подключения к персональному компьютеру, а драйверы для работы с ними входят в состав всех операционных систем. Одним из недостатков накопителей этого типа является неустойчивость в работе, проявляющаяся довольно редко, но причиняющая пользователю немало неприятных моментов. Если у флешки файловая система тома не распознана, то дальнейшая работа с ней невозможна, и приходится искать решение этой проблемы.

Операционная система Windows работает с двумя типами файловых систем - FAT (и её разновидностями, например, exFAT) и NTFS. Накопители из коробки уже имеют определённую таблицу разделов, подготовленную изготовителем. При правильной работе диска на флеш-памяти программная среда автоматически распознаёт подключенное к порту USB-устройство и осуществляет его монтирование. После завершения этих операций флешка становится частью дисковой подсистемы ПК с назначенным буквенным обозначением раздела и появляется возможность проводить с ней операции чтения-записи.

Проверка монтирования диска

В случае, если флеш-диск не появляется в системе в виде диска с определённым буквенным обозначением, необходимо проверить работоспособность накопителя. В первую очередь, необходимо убедиться, что устройство опознано операционной системой. В Windows для этого можно воспользоваться оснасткой «Управление дисками», которая запускается через контекстное меню при нажатии правой кнопки на значке «Компьютер», пункт «Управление». Бывает, что система определяет внешнюю флешку и присваивает её разделу буквенное обозначение, но оно может быть занято каким-то сетевым ресурсом. В таком случае необходимо просто изменить его, щёлкнув правой кнопкой мыши на дисковом устройстве и выбрав пункт всплывающего меню «Изменить букву диска или путь к диску» и назначив ему свободную литеру системы.

В операционных дистрибутивах Linux физическое подключение флеш-устройства можно проверить при помощи команды fdisk –l, запускаемой с правами root. На экран будут выведены все обнаруженный дисковые устройства и перечислены их характеристики. Если флешка присутствует в этом перечне и имеет правильную файловую систему, то необходимо её смонтировать вручную.

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

В Linux драйвера файловых систем Windows могут и не быть установлены прямо из коробки. В этом случае необходимо произвести их инсталляцию. Для ntfs существует специальный пакет ntfs-3g, также разработаны программы для работы с exFAT. Последняя широко применяется в различных цифровых аппаратах для накопителей большого объёма.

Причины появления файловой системы RAW

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


Почему не монтируется флешка

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

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

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

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

Способы исправления при работе в Windows

Начнём с Windows. Может оказаться, что таблица разделов накопителя имеет тип, неизвестный ядру операционной системы Microsoft. К примеру, флешка с разделом ext4 (широко используется в Linux) определится, как исправная, но тип тома не будет выведен в Диспетчере дисков, и при монтировании такого накопителя драйвер системы предложит пользователю его отформатировать. Но в этом случае потеряются все данные, находящие на исправной файловой системе. Поэтому лучший выход- принять во внимание ограниченность работы Windows c «неродными» таблицами разделов и использовать для обмена данными накопители с NTFS или FAT.

Если тип файловой системы определяется как RAW, то для начала можно попытаться её восстановить. Для этого стоит воспользоваться стандартной утилитой операционной системы chkdsk. Запускается она из командной строки. Вся процедура занимает несколько шагов:

  1. Нажать кнопку Пуск, выбрать из его меню пункт «Выполнить»;
  2. Ввести в окне команду cmd и затем нажать кнопку OK;
  3. Запустится командная оболочка Windows. Набираем в окне команду chkdsk H:/F/R

/F - исправление ошибок файловой системы. Флаг /R - исправление повреждённых секторов.

ВАЖНО. Запуск проверки файловой системы флешки не означает, что после её проведения она будет восстановлена. При критических ошибках таблица разделов восстановлению не подлежит.

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

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

После пересоздания файловой системы можно попытаться восстановить утерянные данные. Для этого также существуют специальные программные комплексы, разработанные под системы Microsoft, например, RS Partition Recovery. Минусом таких программ является их стоимость, хотя, когда не удаётся распознать файловую систему важной для бизнеса флешки, цена восстановления может и не иметь решающего значения.

Как исправить систему в Linux

В дистрибутивах Linux есть несколько инструментов для работы с повреждёнными файловыми системами. Все они требуют наличия для запуска прав root и определённых навыков и знаний, так как в подавляющем большинстве запускаются в командной оболочке. Наиболее эффективный инструмент - fsck, который используется со множеством параметров.

Для обычных пользователей дистрибутивов рекомендуется использовать программу GParted, которая запускается в графической подсистеме и имеет графический интерфейс (GUI). Она также требует привилегированных прав, но интуитивно понятна и не требует больших знаний о создании таблиц разделов.

Заключение

Описанные методы восстановления файловых систем внешних накопителей могут применяться для любых типов перезаписываемых носителей цифровой информации. Этими же способами восстанавливаются данные на жёстких дисках, в том числе и твердотельных (SSD). И всё-таки главное правило сохранение важных фалов - их регулярное резервное копирование . Не всем и не всегда удавалось полностью восстановить данные с повреждённых файловых систем.

Здравствуйте, уважаемые посетители, читатели, други и недруги, постоянные клиенты и прочие личности сайта.

Мы продолжаем цикл статей, посвященных Linux-системам. Сегодня мы поговорим о таких важных (может быть, и не совсем простых) понятиях, как:

  • Файловая система Linux ;
  • Основные каталоги корневой файловой системы;
  • Консольные команды для работы с файлами и каталогами.

Итак, начнем.

Корневая файловая система Linux

Сложно представить операционную систему (даже такую как Linux ) без файловой системы. На ней лежит всесистемный порядок. Файловая система строго следит за организацией, хранением, а также именованием данных. Например, когда программа обращается к файлу, она ничего не знает о том, где расположена информация о данном файле, на каком физическом носителе она записана. Единственное, что знает программа, это имя файла, к которому она обращается, его размер и другие параметры, которыми искомый файл отличается от множества других файлов (дату и время создания файла, имя владельца файла, права и метод доступа к файлу и т.д.). Все эти данные она получает от файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске или съемном устройстве). Все собранные в одном месте каталоги (по-другому папки), подкаталоги, а так же файлы и есть данные файловой системы. Причем один из этих каталогов в Linux -системах является самым наиважнейшим, а именно «верхушкой» (по-другому - «корнем») файловой системы - в нём содержатся все остальные каталоги и файлы.

Для того, чтобы Вы понимали, о чем идет речь, я открыл каталоги файловой системы Linux через файловый менеджер Midnight Commander (MC). Верхушку файловой системы (корневой каталог) указал красной стрелкой - и вот именно к ней монтируются все другие файловые системы. Далее мы попытаемся более доступно описать все, что в данный момент Вы видите на рисунке (по тексту мы будем останавливаться на тех или иных понятиях, чтобы было понятно, о чем идет речь, и Вы, поглядев на рисунок, смогли сориентироваться).

Если жёсткий диск разбит на разделы, то на каждом из них возникают отдельные файловые системы с собственным корнем и с собственной структурой каталогов. Любая операционная система поддерживает несколько файловых систем, например, Windows поддерживает такие известные всем файловые системы, как FAT , FAT32 , NTFS и др. Linux не исключение. Однако важно различать файловые системы, которые могут использоваться в качестве корневой файловой системы и файловые системы, которые просто поддерживают операционную систему, но не используются для установки Linux или Windows (к таким можно отнести, например, ISO9660 (эта модель обеспечивает совместимость носителей под разными операционными системами), UDF (а это особенный формат файловой системы, предназначенный для хранения файлов на оптических носителях) и др). Мы не будем рассматривать файловые системы Windows , не будем останавливаться на файловых системах, не использующихся для установки операционных систем, а просто сделаем краткий обзор и познакомимся с некоторыми наиболее известными корневыми файловыми системами Linux .

  • ext - Extended File System (расширенная файловая система) первая файловая система, разработанная специально для операционных систем на ядре Linux .
  • ext2 - Second Extended File System (дословно: «вторая расширенная файловая система») - стандартная, но уже устаревшая файловая система Linux . По скорости и производительности работы она может служить эталоном в тестах производительности файловых систем. Единственный ее минус - она не является журналируемой файловой системой (журналируемая файловая система это система, в которой ведется запись журнала и которая хранит список изменений, что в свою очередь, помогает сохранить целостность файловой системы при сбоях) . Этот недостаток был устранён в следующей файловой системе ext3.
  • ext3 - Third Extended File System (третья версия расширенной файловой системы) усовершенствованная версия файловой системы ext2 с поддержкой ведения журнала, что, несомненно, повышает ее надежность.
  • ext4 - Fourth Extended File System (четвёртая версия расширенной файловой системы) - новейшая файловая система Linux . Начиная с ядра Linux 2.6.28 (вышедшем 25.12.2008 г.) файловая система уже считается стабильной и используется по умолчанию во многих дистрибутивах Linux .
  • Файловая система ext4 рассматривается как переходный шаг на пути к файловой системе следующего поколения Btrfs , которая уже сейчас претендует на звание основной файловой системы Linux в будущем.

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

Еще раз повторимся (повторение - мать учения) :). При установке Linux на выбранном Вами разделе жесткого диска создается корневая файловая система, и для Linux именно она является самой важной. Именно к ней будут монтироваться все остальные файловые системы на других устройствах. Корневая файловая система тоже монтируется, но только не к другой файловой системе, а к «самой Linux », причём точкой монтирования служит корневой каталог. Поэтому при загрузке системы прежде всего монтируется корневая файловая система, а при завершении она размонтируется в последнюю очередь (о самом понятии монтирования и размонтирования мы поговорим в следующих статьях - это отдельная и тоже немаловажная тема) . Корневая файловая система содержит набор стандартных каталогов и утилит, без которых невозможна работа Linux . В Linux корневой каталог обозначается так - “/ ” (слеш). Полные имена (по-другому - пути) всех остальных каталогов получаются из “/ ”, к которому дописываются справа имена последовательно вложенных друг в друга каталогов. Имена каталогов в пути также разделяются символом “/”. Например, запись /home обозначает каталог “home ” в корневом каталоге (“/”) , а /home /Sonikelf - каталог “Sonikelf ” в каталоге “home ”, который, в свою очередь, находится в корневом каталоге. Перечисленные таким образом каталоги, завершающиеся именем файла, и составляют полный путь к файлу .

В Linux , помимо полного пути, есть и относительный путь , который строится точно так же, как и полный - перечислением через слеш (“/”) всех названий каталогов, встретившихся при движении к искомому каталогу или файлу. Между полным и относительным путём есть только одно немаловажное различие: относительный путь начинается от текущего каталога, а полный путь всегда начинается от корневого каталога. Linux различает полный и относительный пути просто: если имя объекта начинается на “/ ” - это полный путь, в любом другом случае - относительный.

Основные каталоги корневой файловой системы
В разных дистрибутивах Linux каталоги тоже могут быть разные: в некоторых будут дополнительные файлы/каталоги конфигурации, а некоторые файлы конфигурации, вполне возможно, будут называться как-то по-другому. Я приведу названия каталогов, которые входят в дистрибутив Fedora . Итак, поехали:

/ - корневой каталог

  • /bin - содержит стандартные утилиты Linux . Или, скажем так, - этот каталог содержит основные исполняемые файлы (в Windows такие файлы имеют расширение.exe) , доступные всем пользователям, а также содержит символьные ссылки на исполняемые файлы. Символьная ссылка это специальный файл в файловой системе, внутри которого есть только одна-две строки с указанием полного пути, который должен быть открыт при попытке обратиться к данной ссылке (файлу).
  • /boot - содержит конфигурационные файлы загрузчика GRUB , образы ядра (по умолчанию хранятся последние три), файлы Initrd. Чтобы было понятно, что это за такие мифические файлы диск, который содержит временную корневую файловую систему, с помощью которой, в свою очередь, осуществляется запуск ядра Linux . Файл Initrd - образ этой временной корневой системы, который хранится на загрузочном устройстве.
  • /dev - содержит файлы устройств. В Linux устройством называется оборудование, которое подключается к системе в процессе загрузки ядра или в процессе работы системы. Эти устройства представляют методы для ввода или вывода информации. Например, жесткий диск - устройство для ввода (запись) и вывода (чтение) , мышь - устройство ввода. Каждое движение или нажатие на кнопки мыши отправляет символ на устройство /dev /mouse , клавиатура - тоже устройство ввода. Большинство устройств в Linux представляют из себя файлы в особой файловой системе (исключение составляют сетевые карты) . И вот эти файлы хранятся в каталоге /dev , куда к ним обращается система для выполнения задач, связанных с вводом/выводом.
  • /etc - содержит конфигурационные файлы операционной системы и всех сетевых служб. Данный каталог можно сравнить с реестром Windows , но в Windows общесистемные настройки хранятся в одном большом бинарном файле, а в Linux - в разных конфигурационных файлах, которые можно редактировать обычным текстовым редактором.
  • /home - название каталога говорит само за себя. Здесь содержатся домашние каталоги всех пользователей, которые зарегистрированы в системе. В домашних каталогах пользователей хранятся пользовательские файлы, а также пользовательские настройки различных программ. Как мы уже упоминали в предыдущей статье, и поэтому каждый пользователь имеет свой уникальный и неповторимый каталог для своих личных, персональных файлов. Этот каталог называется Домашним каталогом пользователя и обозначается, как мы уже говорили немного ранее, /home/Имя_Пользователя. Такое разделение пользовательских каталогов и файлов операционной системы упрощает сохранение данных и повышает надежность самой операционной системы.
  • /lib - здесь находятся различные библиотеки и модули ядра. В процессе установки различных программ в Linux (в том числе и драйверов) устанавливаются (о них мы уже говорили) для корректной работы программы. Вот эти зависимости в большинстве случаев и есть библиотеки - набор собранных особым образом файлов, которые подключаются во время установки к устанавливаемой программе.
  • /lost+found - этот каталог нужен для хранения испорченных файлов при проблемах с файловой системой, которые были восстановлены после, например, некорректного размонтирования файловой системы. Это очень ценный каталог, удалить его не получится (он всё равно снова появится).
  • /misc - может содержать все что угодно.
  • /mnt и /media - обычно в этих каталогах содержатся точки монтирования. В современных дистрибутивах Linux этот процесс обычно происходит автоматически. При этом в каталогах /mnt или /media создается подкаталог, имя которого совпадает с именем монтируемого тома.
  • /opt - здесь обычно размещаются установленные программы, имеющие большой дисковый объем, или вспомогательные пакеты, например, у меня в этом каталоге всего две программы - это Adobe Reader и Google Chrome
  • /proc - это не совсем обычный каталог, это каталог псевдофайловой системы procfs, которая используется для предоставления информации о процессах (по-другому это виртуальная файловая система, которая обеспечивает связь с ядром и монтируется в каталогу /proc) . Да-да, в системе Linux присутствует виртуальный файловый объект, именуемый каталогом /proc. Он существует только во время работы системы в оперативной памяти компьютера. Каталог представляет интерес и с точки зрения безопасности. Многие из утилит, выводящие информацию о системе (например, команда ps) , берут свои исходные данные именно из этого каталога.
  • /root - каталог пользователя (кто это такой, мы упоминали в одной из предыдущих статей).
  • /run - это совершенно новый каталог, который появился совсем недавно. И создан он (по задумке разработчиков) для хранения данных, которые были запущены приложениями, требующимися в процессе работы (это могут быть и службы, запускаемые самой системой, и программы, которые Вы запускаете сами).
    Сюда входят:
    • Идентификаторы процессов PID (каждый запущенный в среде Linux процесс имеет свой уникальный идентификатор - по-другому это адрес (в числовом виде) процесса, с которым будут взаимодействовать другие запущенные процессы во время работы);
    • Информация о межпроцессорном взаимодействии (проще говоря, это обмен данными между запущенными процессами) ;
    • Заблокированные файлы (если в процессе работы приложение или не запускается, или работает нестабильно? это может означать, что некоторые файлы этого приложения заблокированы другими процессами и происходит это тогда, когда сразу несколько приложений пытаются использовать один общий ресурс); - ну и другие данные, необходимые во время работы.
  • /sbin - набор утилит для системного администрирования, содержит исполняемые файлы, необходимые для загрузки системы и ее восстановления в различных щекотливых ситуациях. Запускать эти утилиты имеет право только root.
  • /tmp - каталог, в котором хранятся временные файлы. Linux , в отличие от Windows , следит за чистотой и регулярно очищает этот каталог.
  • /usr - содержит пользовательские программы, документацию, исходные коды программ и ядра. По размеру это один из самых больших каталогов файловой системы. В этот каталог устанавливаются практически все программы. И его (этот каталог) с большой натяжкой можно сравнить с каталогом Program Files в Windows .
  • /var - содержит файлы, которые подвергаются наиболее частому изменению. Например, кэши различных программ; файлы блокировки для недопустимости одновременного использования одной программы несколькими пользователями; файлы системных журналов; временные файлы (при выключении компьютера содержимое очищается); информация о различных программах; общая информация о состоянии системы с момента последней загрузки, входа в систему и т.д.; очередь печати, факсов, а также входящие почтовые ящики пользователей и т.д.

Вывод. Файловая система в Linux это неразделимое целое, начинающееся с корневого каталога (так называемой "верхушки"), а внутри каталога могут находиться целые диски или их разделы (с другими файловыми системами), которые можно легко примонтировать (присоединить) и также легко отмонтировать (отсоединить) от единственного, единого, неразделимого, целого дерева. Специально выделил эти слова, чтобы было понятно отличие от файловой системы Windows . Если кто не в курсе, в Windows каждый логический диск это корневой каталог. Например, если есть три логических диска - C, D, F , значит будет три корневых каталога.

Необходимые команды, которые нужно знать для работы с файлами и каталогами

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

Примечание:
Обращаю Ваше внимание, что все имена файлов и названия команд нужно вводить в правильном регистре, т.е. имена в Linux «чувствительны к регистру». Например, команда cd - совсем не то же самое, что команда Cd или CD . То же относится к именам файлов и каталогов.

Команда cd - используется для движения по дереву каталогов. Если Вы введете эту команду без аргументов (т.е. просто напишите cd - смотрите первую строку на рисунке), то попадете в свой домашний каталог, а чтобы попасть в любой другой каталог, необходимо указать путь к нему. По умолчанию Вы всегда изначально находитесь в своем домашнем каталоге (/home). В первой строке указан относительный путь, во второй - полный. Если Вам нужно передвинуться в какой-либо другой каталог, то введите cd , обязательно пробел и тот каталог, куда Вам нужно перейти, например cd /usr . На четвертой строке рисунка в квадратных скобках указано, что мы перешли в каталог usr. Можно сразу указать весь путь, например, cd /usr/games . Вы попадете в каталог games, который находится в каталоге usr, который, в свою очередь, находится в корневом каталоге системы. Чтобы вернуться обратно в свою домашнюю директорию, достаточно указать относительный путь cd ~.

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

Не обязательно находиться в том каталоге, содержимое которого Вы хотите узнать с помощью команды ls. Например, чтобы увидеть, что имеется в каталоге /etc , находясь при этом в вашем домашнем каталоге, введите:

ls -al /etc

Здесь мы указали два ключа - это показывать скрытые файлы (a) и вывести информацию (l). Обратите внимание, мы можем сразу указывать несколько ключей, чтобы получить всю информацию о каталоге или файле.

Приведу наиболее часто употребляемые ключи команды ls:

A (all) - выведет список всех файлов каталога, в том числе и скрытые файлы;

L (long) - выведет информацию о содержимом каталога, включая права доступа (первая графа), владельца (вторая графа), группу (третья графа), размер (четвертая графа), время создания (пятая графа), является ли файл символьной ссылкой на другой файл и на какой именно (шестая графа);

R (reverse) - выведет список содержимого каталога в обратном порядке;

S (size) - отсортирует файлы по размеру.

Следующая полезная и нужная команда - pwd . Перемещаясь по различным каталогам, можно оказаться в довольно щекотливой ситуации, когда Вы не знаете или не помните имя текущего каталога - иначе говоря, Вы заблудились в файловой системе:). Ведь по умолчанию в Linux приглашение командной строки отображает только имя текущего каталога, а не полный путь к нему. Вот в этом случае команда pwd окажет вам неоценимую услугу

Посмотрите на первую строку. В квадратных скобках указано, что я нахожусь в каталоге services. А вот где он находится, в каких или какой директории совершенно непонятно. Введя вышеназванную команду, мне открылся полный путь к этому каталогу (вторая строка). С этой командой Вы точно не заблудитесь в файловой системе Linux .

Команда mkdir - создание нового каталога. В домашнем каталоге пользователя - /home , как и в любом другом, можно создавать неограниченное число подкаталогов, в них - свои подкаталоги и т.д. Другими словами, Вам принадлежит "поддерево" файловой системы, корнем которого является домашний каталог пользователя.
Чтобы организовать такое поддерево, потребуется создать каталоги внутри домашнего. Вот для этого и используется утилита mkdir . Она используется с одним обязательным параметром: именем создаваемого каталога. По умолчанию каталог будет создан в текущем каталоге.

Давайте создадим каталог globus (первая строка на рисунке). Введем команду mkdir globus . Чтобы удостовериться, что каталог создан, введем команду ls с ключом -F (для каждого имени каталога добавлять суффикс "/"). Каталог создан.

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

Давайте немного потренируемся: создайте в домашнем каталоге два каталога - Globus и Dos и создайте файл - dokument . А теперь приступим к практике:

1) Переименуем один файл в другой. Чтобы переименовать, например, файл dokument в dokument.old , введите:

mv dokument dokument.old

2) А теперь переместим один каталог в другой. Чтобы переместить каталог Globus из текущего рабочего каталога в каталог Dos , введите:

mv Globus Dos

Если каталог Dos уже существует (как в нашем случае), mv поместит Globus внутрь Dos . А если каталога Dos Вы не создали, то mv ПЕРЕИМЕНУЕТ (перезапишет) Globus в Dos

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

Например, чтобы переместить файл /usr/tmp/dokument в текущий рабочий каталог, введите:

mv /usr/tmp/dokument txt.txt

Файл dokument был изначально в /usr/tmp/ , мы его переместили в домашний каталог переименовав в txt.txt

4) А теперь чтобы переместить файл txt.txt из текущего рабочего каталога в каталог /usr/tmp , наберите:

mv txt.txt /usr/tmp

Файлов в каталоге tmp может быть много, поэтому картинку для удобства разделил и уменьшил. Вторая строка означает, что чтобы удостоверится в перемещении нашего файла, мы должны перейти в этот каталог, что и сделали с помощью команды cd . А с помощью команды ls мы открыли для просмотра каталог tmp и убедились, что перемещение произошло успешно.

Следующая полезная и нужная команда - cp.
Она создает копию файла. Утилита cp тоже требует присутствия двух обязательных параметров: первый - то, что мы хотим скопировать (файл или каталог), второй - куда мы хотим это скопировать (пункт назначения). Например, надо скопировать файл dokument в каталог Globus - введите команду

cp dokument Globus

и в каталоге Globus появится файл dokument (это будет копия файла dokument , который находится в нашем домашнем каталоге)

С помощью команды cp можно копировать не только по одному файлу или каталогу - можно путем перечисления всего того, что Вы хотите скопировать, указать это команде cp . Например, нам надо скопировать два файла dokument и dokument.old в каталог Dos , ничего нет проще - перечислите все файлы или каталоги через пробел:

cp dokument dokument.old Dos

Можно не только копировать, но и удалять файлы и каталоги, и в этом нам помогут команды rm (удаляет файлы)..

И rmdir (удаляет каталоги). rmdir согласится удалить каталог только в том случае, если он пуст, т.е. в нём нет никаких файлов и подкаталогов.

Удалить каталог вместе со всем его содержимым можно командой rm с ключом «-r ». Команда rm -r имя каталога(ов) - очень удобный способ потерять в одночасье все файлы: она рекурсивно (этот термин обозначает примерно то же, что у Windows запустить uninstaller ) обходит весь каталог, удаляя всё, что попадётся - файлы, подкаталоги и т.д., а ключ «-f » (force) делает её работу ещё более неотвратимой, так как подавляет запросы вида «удалить защищённый от записи файл», так что rm работает безмолвно и безостановочно. Будьте внимательны при использовании этой команды.

Команда cat - позволяет вывести на экран содержимое любого файла, однако в таком виде эта команда практически не используется. Если файл слишком большой, то его содержимое пролистается на экране, а Вы увидите только последние строки файла. С помощью этой команды можно комбинировать и объединять копии файлов, а также создавать новые файлы. Если набрать просто в командной строке cat и нажать Enter , то можно вводить (и соответственно видеть) текст на экране. Повторное нажатие клавиши Enter удвоит строку и позволит начать следующую. Когда текст набран, следует одновременно нажать клавиши Ctrl и d .

Так происходит потому, что первую строку вводите Вы сами, а вторую копирует команда cat на экран. Если переадресовать (т.е. записать) вывод в файл txt , то никакого удвоения не произойдет, зато в рабочем каталоге появится новый файл с набранным текстом, который спокойно можно просмотреть через эту команду:

cat > txt

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

Некоторые опции, которые можно использовать с этой командой:

  • -A показывает все невидимые символы;
  • -E показывает символы конца строки;
  • -e показывает непечатаемые символы плюс символ конца строки;
  • -b нумерует непустые строки;
  • -n нумерует все строки.

Давайте попробуем объединить два файла в один с помощью команды cat :
У нас есть два файла - dokument и txt , мы объединим их в один galina , введя команду

cat dokument txt >galina

Вот и все - наши два файла объединены в один с сохранением и первого, и второго файлов в одном общем файле:)

Если файл слишком большой, то для просмотра на экране надо воспользоваться командами more и less .

  • more выводит содержимое файла на экран постранично, размером как раз на целый экран. Для того, чтобы увидеть следующую страницу, надо нажать на клавишу пробела. Выйти из режима просмотра можно с помощью клавиши Q.
  • less содержит все функции и команды управления выводом, имеющиеся в more и дополнительные, например, для перемещения по тексту Вы можете использовать клавиши Стрелка вверх , Стрелка вниз , PgUp , PgDown .
  • Команда locate - выполняет поиск файла. С помощью этой команды Вы можете увидеть все файлы или каталоги, названия которых содержат искомый образец. Например, для поиска файла, содержащего в названии слово dokument.old, введите в командной строке

locate dokument.old

Команда locate нашла все файлы dokument.old . В системе их оказалось три. Можно задать и более расширенный поиск, например, если вместо dokument.old Вы укажите "кусочек" названия, например "doku ". Будут найдены ВСЕ файлы, где встречается это буквосочетание.

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

Еще одна полезная команда - which . Она показывает положение исполняемых файлов. Команда полезна при создании кнопки запуска какого-либо приложения.

Чтобы создать кнопку запуска, Вы должны знать команду запуска приложения, для которого захотите создать кнопку запуска на рабочем столе. На данном рисунке видно, что команда запуска ls - это /usr/bin/ls

Команда clear (а также сочетание клавиш Ctrl+L ) - очищает окно терминала. Это бывает полезным, когда Вы передвигаетесь по каталогам, файлам, поскольку окно терминала заполняется кучей команд или просто какой-нибудь информацией. При этом приглашение командной строки будет смещено вниз – что не всегда удобно. Чтобы не выходить из командной строки и снова заходить в нее, нужно воспользоваться командой clear .

Ну и напоследок хочу отметить еще две полезных и очень нужных команды.

Первая это history . Само название команды говорит само за себя. Это история команд, которую Вы вводили в окне терминала. Для новичков или даже продвинутых пользователей довольно утомительно запоминать, как пишется та или иная команда (я говорю не об однословных командах, а о командах, содержащих в себе 2-3-4 слова, например, system-config-authentication). Эта команда выведет на экран список ранее введенных команд (список этих команд можно ещё посмотреть в файле.bash_history . Он находится в вашей домашней папке пользователя). Просто наберите: !"номер команды в history ", например !847 .

И закончим мы знакомство, пожалуй, с самой важной командой в Linux . Это команда man - сокращенно от "manual " (руководство). Ею можно вызвать страницы документации о предназначении и об использовании команд в системе. Введя man , пробел и название любой команды, Вы увидите страницу документации по выбранной команде, например, введите man clear

Выход из справки - q

Как и любая другая справочная система, система man имеет собственную man -страницу. Введите man man и получите подробнейшую документацию по самой команде man .

Послесловие.

Как-то так. Как и всегда ждем от Вас комментариев, дополнений и всего такого прочего.

На этом мы закончим нашу очередную лекцию:). Будут и следующие, надеюсь, что интересные и захватывающие. Если есть, что дополнить (добавить), милости прошу, добавляйте в своих комментариях.

P.S. За существование данной статьи спасибо члену команды Pantera

Любая операционная система поддерживает несколько файловых систем, например, Windows поддерживает такие известные всем файловые системы, как FAT , FAT32 , NTFS и др. Linux не исключение.

Ряд пользователей могут столкнуться c невозможностью получения доступа к своему жесткому диску (или флеш-накопителю). В операционной системе такие устройства получают статус «Raw », и их файловая структура становится недоступной для пользователя. В этой статье я детально рассмотрю данную дисфункцию, расскажу, что делать в ситуации, когда файловая система RAW, а также как вернуть NTFS, FAT32, какие инструменты нам в этом помогут, и как ими воспользоваться.

Восстанавливаем разделы дисков

Что такое файловая система RAW

Чтобы понять, что это файловая система RAW и как вернуть формат NTFS, FAT32, необходимо определиться со смысловой нагрузкой самого термина «RAW». В переводе с языка Шекспира лексема «Raw» означает «сырой», «сырой материал». Соответственно, в нашем случае данным термином обозначаются диски, которые или ещё не отформатированы, или структура данных на них повреждена (ошибки в таблице разделов MBR и файловой таблицы MFT, вирусы, аппаратные проблемы ПК и так далее.).

Говоря проще, RAW диски – это диски, которые не распознаются ОС Виндовс по различным причинам. Обычно в таком случае Виндовс рекомендует отформатировать такой диск, чего делать как раз не следует, так как вследствие форматирования имеющиеся на диске данные будут потеряны.

Причины, по которым диск из NTFS и FAT32 становится RAW

Причины появления RAW дисков вместо привычных файловых систем NTFS и FAT32 следующие:

  • Внезапное отключение таких дисков (потеря напряжения в сети, физическое отсоединение их пользователем, проблемы в работе блока питания и т.д.), вследствие чего нарушается целостность и структура имеющихся на диске данных;
  • Проблемы с кабелями, соединяющими материнскую плату и жёсткий диск;
  • Работа вирусных программ, нарушающих целостность загрузчика, таблицы разделов, файловой структуры и так далее;
  • Bad-сектора на винчестере, вследствие чего структура системы на жёстком диске бывает повреждена;
  • Ошибке в установке или обновлении операционной системы;
  • Ошибки при работе с различными менеджерами разделов жёсткого диска;
  • Не плотное соединение флешки с USB-разъёмом ПК (в случае флеш-накопителя);
  • Проблемы в работе материнской плате компьютера и так далее.

Как вернуть NTFS, FAT32 из RAW

  • Попробуйте просто перезагрузить ваш компьютер , проблема может иметь случайный характер;
  • Проверьте плотность соединения кабелей к винчестеру , попробуйте использовать другой разъём для подключения винчестера на материнской плате, а также другой разъём ЮСБ компьютера при подключении внешнего флеш-накопителя;
  • Используйте возможности встроенной утилиты CHKDSK . Запустите командную строку от имени администратора, и в ней наберите

chkdsk X: /f (где Х – это буква RAW-диска)

Параметр «f» означает исправление ошибок на диске, то есть утилита CHKDSK не только ищет проблемы, но и исправляет их.

Замечу также, что данная команда актуальна, прежде всего, для тех дисков, которые были отформатированы в файловой системе NTFS. При этом если вы не можете загрузить операционную систему, то загрузитесь с помощью загрузочного системного диска или флешки (можно использовать различные сборки «Live CD»), выберите там «Восстановление системы», перейдите в «Дополнительные параметры» а потом в «Командная строка», и там наберите вышеуказанную команду.

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

  • Используйте возможности другой системной утилиты sfc , созданной для проверки целостности системных файлов. Также запустите командную строку от имени администратора, в ней напишите:

и нажмите ввод.

  • Если у вас имеется доступ к операционной системе, тогда стоит проверить ваш компьютер на вирусы с помощью специальных антивирусных программ (например, Web CureIt! или Malware-AntiMalware);
  • Если на проблемном диске нет важной информации (или она не существенна), тогда проблемный диск (или флешку) можно отформатировать . Нажмите на клавишу «Пуск», и в строке поиска наберите diskmgmt.msc, появится панель управления дисками. Кликните правой клавишей мыши на raw-диске и в появившемся меню выберите «Форматировать».

Если у вас файловая система RAW верните NTFS, FAT32 - используя сторонние программы

Если вы хотите восстановить файловую систему NFTS и FAT32, то стоит использовать функционал специальных программ, которым нам в этом помогут. Я предлагаю такие программы как Recuva и TestDisk.

Recuva

Одна из популярных программ для восстановления потерянных файлов – это Recuva . Скачайте, установите и запустите данный продукт, выберите опцию восстановления всех файлов, укажите проблемный диск, задействуйте опцию углублённого анализа и нажмите на «Начать».

После окончания проверки программа выведет список найденных файлов, пометьте их галочками и нажмите на «Восстановить».

ТеstDisk

Вторая программа, способная помочь в вопросе файловой системы RAW – это TestDisk.

  1. Скачайте и установите данную программу, выполните её запуск от имени администратора.
  2. Выберите команду «Create» (создать) и нажмите ввод, курсором выберите raw-диск и нажмите «Enter».
  3. После выбора нужного типа таблицы разделов нажмите на ввод, потом выберите «Analyze» и «Quick Search» (будет осуществлён быстрый поиск проблемных разделов).
  4. После того, как TestDisk найдёт проблемные тома, нажмите на «Write» (запись) для записи структуры найденного раздела.

Как изменить файловую систему флешки [видео]

Выше мной была проанализирована проблема, когда файловая система RAW. Наиболее оптимальным инструментом для возвращения NTFS, FAT32 является использование системной команды CHKDSK, а также специальных программ, способных восстановить файловую структуру проблемного диска. Если же не один из предложенных мной советов не оказался для вас эффективным, тогда рекомендую обратиться в сервисный центр – возможно у вашего винчестера имеются проблемы не программного, а аппаратного, характера, и ему необходим основательный ремонт.

Если при подключении флеш-накопителя к компьютеру носитель не открывается через Проводник WIndows, а на экране появляется уведомление о необходимости провести форматирование, то вы столкнулись с повреждением файловой системы. Вместо привычных NTFS и FAT32 на флешке теперь стоит формат RAW, при котором содержимое съемного диска становится недоступным.

Исправление ошибки

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

Не торопитесь нажимать кнопку «Форматировать сейчас». Сначала нужно вытащить с флешки необходимую информацию. Поможет это сделать бесплатная программа для восстановления файлов R.Saver. Если вы сначала выполните форматирование накопителя, то восстановить данные будет намного труднее.

Восстановление файлов

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

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


После завершения процесса копирования выбранные вами данные будут сохранены в указанной папке. Кроме R.Saver можно использовать для восстановления информации такие программы, как GetDataBack, TestDisk, PC Inspector File Recovery, Mini Tool Power Data Recovery. Все перечисленные утилиты в ходе тестов показали отличные результате при работе с флешками с поврежденной файловой системой.

Восстановление накопителя

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

Создание корневой файловой системы включает выбор файлов, необходимых для запуска системы. В этой секции мы описываем, как создать сжатую корневую файловую систему. Менее распространенный вариант - создать несжатую файловую систему на дискете, которая непосредственно монтируется как корневая; этот вариант описан в секции `` Не - ramdisk Корневая Файловая система ".

4.1. Обзор.

Корневая файловая система должна содержать все необходимое для поддержки полной Linux системы. Для этого диск должен включить минимальные требования для Linux системы:
  • базовая файловая система,
  • Минимальный набор каталогов: /dev, /proc, /bin, /etc, /lib, /usr, /tmp,
  • Базовый набор утилит: sh, ls, cp, mv, и т.д.,
  • Минимальный набор файлов конфигурации: rc, inittab, fstab, и т.д.,
  • Устройства: /dev/hd *, /dev/tty *, /dev/fd0, и т.д.,
  • Библиотеки поддержки, для обеспечения базовых функций, используемых утилит.

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

  • Проверить файловую систему другого устройства, например проверить корневую файловую систему на жестком диске, у Вас должна быть возможность загрузить Linux с другого устройства- корневой дискеты. Затем Вы можете выполнить fsck на вашем основном корневом диске, в то время как он - не замонтирован.
  • Восстанавливать все или часть вашего основного корневого устройства из архива используя утилиты резервирования типа cpio, tar, gzip и ftape.

    Мы опишем, как создать сжатую файловую систему, называемую так, потому она что сжата на диске и, когда загружается, распаковывается на ramdisk. Со сжатой файловой системой Вы можете разместить много файлов (приблизительно два мегабайта) на стандартную дискету 1440КБ. Так как файловая система намного больше чем дискета, она не может поместиться на дискете. Мы должны создать ее в другом месте, сжать и затем скопировать на дискету.

    4.2. Создание файловой системы.

    Чтобы создать такую корневую файловую систему, Вам нужно достаточно большое запасное устройство, чтобы содержать все файлы перед сжатием. Вам необходимо устройство, способное хранить приблизительно четыре мегабайта. Есть несколько вариантов:
  • Использовать ramdisk (DEVICE = /dev/ram0). В этом случае используется память, чтобы имитировать дисковод. Ramdisk должен быть достаточно большой, чтобы содержать файловую систему соответствующего размера. Если Вы используете LILO, проверьте в вашем файле конфигурации (/etc/lilo.conf) строчку: RAMDISK_SIZE = nnn Которая определяет, сколько оперативной памяти будет выделено. Значение по умолчанию 4096КБ, которое должно быть достаточным. Вы не должны пытаться пробовать использовать такой ramdisk на машине с объемом памяти менее 8МБ.

    Удостовертесь что существует устройство /dev/ram0, /dev/ram или /dev/ramdisk. Если необходимо, создайте /dev/ram0 с mknod (major номер 1, minor 0).

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

    Чтобы использовать петлевые устройства, Вам нужны специально модифицированные mount и unmount программы. Вы можете найти их в каталоге:

    Если на вашей системе нет loop устройства (/dev/loop0, /dev/loop1, и т.д.) , Вы должны создать их - ``mknod /dev/loop0 b 7 0"". Как только вы установили специальные mount и umount, создаете временный файл на жестком диске с достаточной емкостью (eg, /tmp/fsfile). Вы можете использовать команду

    Dd if=/dev/zero of=/tmp/fsfile bs=1k count=nnn для создантя nnn-блокового файла.

    Используйте имя файла вместо DEVICE ниже. Когда Вы даете команду монтирования, Вы должны включить опцию ``-o loop" чтобы mount использовала петлевое устройство.

    Mount -o loop -t ext2 /tmp/fsfile /mnt монтирует /tmp/fsfile (через петлевое устройство) в точке монтирования /mnt. Команда df должна подтвердить это.

    После того, как вы выбрали одну из этих опций, подготовьте DEVICE:

    Dd if=/dev/zero of=DEVICE bs=1k count=3000 Эта команда обнуляет устройство. Этот шаг важен, т.к. файловая система на устройстве будет сжата, для достижения максимальной степени сжатия все неиспользуемые части должны быть заполнены нулями.

    Затем, создайте файловую систему. Linux ядро распознает два типа файловой системы для корневых дисков, которые автоматически сопируются на ramdisk. Это - minix и ext2, из которых ext2 является привилегированной файловой системой. При использовании ext2, Вы можете использовать -i опцию, чтобы определить большее количество inodes чем значение по умолчанию; -i 2000 предложен так, чтобы Вы не исчерпали inodes. В качестве альтернативы, Вы можете сберечь inodes, удаляя большинство ненужных /dev файлов. mke2fs по умолчанию создаст 360 inodes на дискете 1. 44МБ. Я считаю, что 120 inodes вполне достаточно для моей текущей спасательной корневой дискеты, но если Вы включаете все устройства в /dev каталог, Вы легко превысите 360. Использование сжатой корневой файловой системы позволяет иметь большую файловую систему, и следовательно большее количество inodes по умолчанию, но Вы должны либо уменьшить число файлов,либо увеличивать число inodes.

    Так что Ваша команда выглядит так:

    Mke2fs -m 0 -i 2000 DEVICE (Если вы используете петлевое устройство, вместо DEVICE должно быть подставлено имя используемого дискового файла. mke2fs спросит, действительно ли Вы хотите сделать это; говорите да.)

    mke2fs команда автоматически обнаружит доступное пространство и соответственно сконфигурируется. -m 0 параметр предотвращает от резервирования пространства для корня, и следовательно, обеспечивает больше используемого пространства на диске.

    Затем, смонтируйте устройство:

    Mount -t ext2 DEVICE /mnt (Вы должны создать каталог монтирования /mnt, если он не существует.) В следующих секциях, все имена каталогов назначения полагаются соответственно /mnt.

    4.3. Заполнение файловой системы.

    Существует разумный минимальный набор каталогов для вашей корневой файловой системы:
  • /dev --- Устройства, требуемые для ввода/вывода
  • /proc --- каталог-заглушка, необходимый для proc файловой системой
  • /etc --- системные файлы конфигурации
  • /sbin --- критичные системные binaries
  • /bin --- базовые binaries часть предполагаемой системы
  • /lib --- общие библиотеки, для обеспечения средств динамической поддержки (run-time)
  • /mnt --- точка монтирования для поддержки других дисков
  • /usr --- дополнительные утилиты и приложения

    (Представленная здесь структура каталогов - только для использования в корневой дискете. Реальные Linux системы имеют большее полный и четкий набор правил, называемый Стандарт Файловой Системы (File System Standard), для определения размещения файлов.)

    Три из этих каталогов должны быть пусты на корневой файловой системе, т.о. что они должны быть только созданы mkdir. Каталог /proc - в основном заглушка, в который помещена proc файловая система. Каталоги /mnt и /usr - только точки монтирования для использования после того, как загрузочная/корневая система будет запущена. Следовательно, эти каталоги должны быть только созданы.

    Оставшиеся четыре каталога описаны в следующих секциях.

    4.3.1. /dev

    /dev каталог содержит специальные файлы для всех устройств, которые обязательно используются в любой Linux системе. Сам каталог - обычный каталог, и может быть создан mkdir обычным способом. Однако специальные файлы устройств, должны быть созданы специальным способом, используя команду mknod.

    Есть более короткий путь - копировать содержимое вашего существующего каталога /dev , и удалить те устройства, которые Вам не нужны. Единственое требование - чтобы Вы, копируя специальные файлы устройств, использовали -R опцию. Это приведет к копированию каталога без попытки копировать содержимое файлов. Убедитесь, что Вы использовали верхний регистр R. Если Вы укажете опцию со строчной буквы -r, Вы вероятно скопируете все содержимое всех ваших жестких дисков - или по крайней мере столько, сколько поместится на дискете! Следовательно, соблюдайте осторожность, и используйте команду:

    Cp -dpR /dev /mnt предполагается, что дискета смонтирована в /mnt. Опции dp гарантируют, что символические ссылки буду копироваться как ссылки, а не как содержимое файла, и что первоначальные атрибуты файла сохранятся, таким образом сохранится информация о владельце файла.

    В качестве альтернативы, Вы можете использовать программу cpio с -p опцией, потому что cpio обрабатывает специальные файлы устройств правильно, и не будет пытаться копировать содержимое. Например, команды:

    Cd /dev find . -print | cpio -pmd /mnt/dev будут копировать все специальные файлы устройств из /dev в /mnt/dev. Фактически копируются все файлы в дереве каталога /dev, и создются требуемые подкаталоги в дереве результирующего каталога.

    Если Вы хотите сделать это трудным способом, используйте ls -l, чтобы отобразить главные(major) и малые (minor) числа устройств для нужных вам устройств, и создайте их на дискете, используя mknod.

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

    Обратите внимание, что для каждого файла устройства требуется один inode, и inodes может быть дефицитым ресурсом, особенно на файловой системе дискеты. Следовательно имеет смысл удалить любые файлы устройств в /dev каталоге дискеты, которые Вам не нужны. Много устройств очевидно не нужно на специфических системах. Например, если у Вас нет SCSI дисков, Вы можете свободно удалить все файлы устройств начинающиеся с sd. Точно так же, если Вы не предполагаете использовать последовательный порт, все файлы устройств начинающиеся с cua можно удалить.

    Убедитесь, что включили следующие файлы в этот каталог: console, kmem, mem, null,ram, tty1.

    4.3.2. /etc

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

    1.Требуемые всегда, например rc, fstab, passwd.

    2. Которые могут потребоваться, но не обязательно.

    3. Всякий хлам.

    Файлы, которые не необходимы, могут быть идентифицированы с командой:

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

    На моих корневых дискетах число конфигурационных файлов до 15. Это уменьшает мою работу разделив на три набора файлов:

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

    a. rc.d/* - скрипты запуска системы и изменения уровня выполнения

    b. fstab --- список монтируемых файловых систем

    c. inittab --- параметры для процесса init - первого процесса запускаемого во время начальной загрузки.

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

    a. Passwd --- список пользователей, домашних каталогов, и т.д.

    b. group - группы пользователей.

    c. shadow --- пароли пользователей. У Вас может его не быть.

    Если безопасность важна, passwd, и shadow должны быть сокращены, чтобы избежать копирования паролей пользователей вне системы, и так, чтобы, когда Вы загрузились с дискеты, нежелательные входы в систему отвергались. Однако, имеется причина не сокращать passwd и group. tar (и вероятно другие архиваторы) сохраняет имя и группу пользователя с файлами. Если Вы восстанавливаете файлы на ваш жесткий диск с ленты, файлы будут восстановлены с первоначальными именами их владельцев. Если эти имена не существуют в passwd/group, при восстановлении, UIDs/GIDs не будут правильны.

    Убедитесь, что passwd содержит по крайней мере root. Если Вы допускаете других пользователей ко входу в систему, убедитесь, их домашние каталоги и оболочки(shells) существуют.

    3. Остальные. Они работают в данный момент, так что я оставляю их.

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

  • rc должен содержать: #!/bin/sh /bin/mount -av /bin/hostname Kangaroo Убедитесь, что каталоги правильны. В действительности Вы не должны выполнять hostname - это только выглядит лучше, если Вы это сделаете.
  • fstab должен содержать по крайней мере: /dev/ram0 / ext2 defaults /dev/fd0 / ext2 defaults /proc /proc proc defaults Вы можете копировать записи из вашего существующего fstab, но Вы должны не автоматически монтировать все ваши разделы жесткого диска; используйте noauto ключевое слово с ними. Ваш жесткий диск может быть поврежден или мертв, когда используется загрузочная дискета.

    Ваш inittab должен быть изменен так, чтобы sysinit строка выполнила rc, или любой базовый сценарий начальной загрузки, который будет использоваться. Также, если Вы хотите гарантировать, что пользователи на последовательных портах не могут входить в систему, закомментируйте все записи для getty, которые включают устройства ttys или ttyS в конце строки. Оставьте tty порты так, чтобы Вы могли входить в систему с консоли.

    Минимальный inittab файл выглядит так:

    Id:2:initdefault: si::sysinit:/etc/rc 1:2345:respawn:/sbin/getty 9600 tty1 2:23:respawn:/sbin/getty 9600 tty2 Inittab файл определяет то, что система будет запускаться в различных режимах включая запуск, переход в многопользовательский режим, и т.д. Главное быть внимательным здесь, и тщательно проверить, что команды, указанные в inittab обращаются к программам, которые существуют и в правильном каталоге. Если Вы поместите ваши командные файлы в ваш спасательный диск, используя секцию "Пример каталога корневого диска" как инструкцию, и затем скопируете ваш inittab в ваш загрузочный диск без проверки, вероятность отказа будет очень высока, потому что половина inittab записей обратится к отсутствующим программам или к неправильным каталогам.

    Обратите внимание, что некоторые программы не могут быть размещены в другом месте, потому что другие программы жестко связаны с их расположением. Например на моей системе, /etc/shutdown имеет жестко связан с /etc/reboot. Если я перемещаю reboot в /bin/reboot, и затем выдаю команду shutdown, она не выполнится, потому что не сможет найти файл перезагрузки.

    Для остальных, просто скопируйте все текстовые файлы в вашем /etc каталоге, плюс все исполняемые программы в вашем /etc каталоге, в которых Вы не уверены, что они Вам не понадобятся. Как инструкцией, руководствуйтесь примером, в секции "Пример каталога корневого диска". Вероятно достаточно скопировать только те файлы, но системы значительно отличаются, так что Вы не можете быть уверены, что тот же самый набор файлов на вашей системе эквивалентен файлам в списке. Единственый верный метод - начать с inittab и выбрать то, что требуется.

    Большинство систем теперь использует /etc/rc.d/ каталог, содержащий сценарии оболочки для различных уровней выполнения. Минимум - одиночный rc скрипт, но может быть проще скопировать inittab и /etc/rc.d каталог из вашей существующей системы, и сокращать сценарии оболочки в rc.d каталоге, чтобы удалить обработку не относящуюся к окружению системной дискеты.

    4.3.3. /bin и /sbin

    Каталог /bin - удобное место для дополнительных утилит, которые должны выполнять базовые операции, утилиты типа ls, mv, cat и dd. См. приложение "Пример каталога корневого диска" для примерного списка файлов, которые входят в /bin и /sbin каталоги. Он не включает никакие утилиты восстановления из резервных копий, типа cpio, tar и gzip.Это потому, что я помещаю их на отдельную сервисную дискету, сохраняя пространство для загрузочной дискеты. Как только загрузочная дискета загружается, она копируется на ramdisk, оставляя дисковод свободным для монтирования другой дискеты - сервисной дискеты. Я обычно монтирую его как /usr.

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

    Удостоверитесь, что Вы включили следующие программы: init, getty или эквивалент, login, mount, некоторые оболочки, способные выполнять ваши rc скрипты, ссылка от sh к оболочке.

    4.3.4. /lib

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

    Почти каждая программа требует по крайней мере libc библиотеки, libc.so.N, где N - текущий номер версии. Проверьте ваш /lib каталог. libc.so.5 - обычно symlink к имени файла с полным номером версии:

    % ls -l /lib/libc.so* lrwxrwxrwx 1 root root 14 Nov 1 20:34 /lib/libc.so.5 -> libc.so.5.4.33* -rwxr-xr-x 1 root root 573176 Jun 12 02:05 /lib/libc.so.5.4.33* В этом случае Вам надо libc.so.5.4.33. Чтобы найти другие библиотеки, Вы должны пройти все binaries, которые Вы планируете включить и проверить их зависимости ldd командой. Например: % ldd /sbin/mke2fs libext2fs.so.2 => /lib/libext2fs.so.2 libcom_err.so.2 => /lib/libcom_err.so.2 libuuid.so.1 => /lib/libuuid.so.1 libc.so.5 => /lib/libc.so.5 Каждый файл справа - нужен. Имейте в виду, что перечисленные библиотеки могут быть символическими ссылками.

    В /lib Вы должны также включить ld.so загрузчик для a.out библиотек или ld-linux.so (для библиотек ELF). Если не уверены, какой Вам нужен, выполните команду file на библиотеке. Например:

    % file /lib/libc.so.5.4.33 /lib/libc.so.4.7.2 /lib/libc.so.4.7.2: Linux/i386 demand-paged executable (QMAGIC), stripped /lib/libc.so.5.4.33: ELF 32-bit LSB shared object, Intel 386, version 1, stripped QMAGIC указывает, что 4.7.2 - для a.out библиотек, и ELF указывает, что 5.4.33 - для ELF.

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

    4.4 Обеспечение для PAM и NSS.

    Ваша система может требовать некоторе динамически загружаемые библиотеки, которые не видны ldd.

    4.4.1 PAM (Pluggable Authentication Modules).

    Если ваша система использует PAM (Pluggable Authentication Modules) Вы должны принять некоторые меры, иначе Вы будуте не способны войти в систему. PAM - изощренный модульный метод, для опознавания пользователей и их доступа к службам. Простой путь проверки использования вашей системой PAM состоит в проверке каталога /etc на вашем диске на наличие файла pam.conf или каталога pam.d; если они существуют - вы должны обеспечить минимальную поддержку PAM.(В качесте альтернативы запустите ldd для вашего исполняемого файла login; если выдаваемая информация включает libpam.so вам нужен PAM).

    В лучшем случае, безопасность не имеет не имеет значения для загрузочных дисков, т.к. если кто-то имеет физический доступ к машине он может сделать все, что захочет.Следовательно, по существу вы можете запретить PAM создавая в вашей корневой файловой системе простой /etc/pam.conf:

    OTHER auth optional /lib/security/pam_permit.so OTHER account optional /lib/security/pam_permit.so OTHER password optional /lib/security/pam_permit.so OTHER session optional /lib/security/pam_permit.so Также скопируйте файл /lib/security/pam_permit.soв вашу корневую файловую систему.Эта библиотека приблизительно 8Кб, т.о. она налагает минимальные расходы.

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

    Вы также должны включить /lib/libpam.so на ваш загрузочный диск, но Вы уже об этом знаете, т.к. запускали ldd для /bin/login, который показал эту зависимость.

    4.4.2 NSS (Name Service Switch).

    Если Вы используете glibc (или libc6) Вы должны обеспечить name services или вы не сможете войти в систему.Файл /etc/nsswitch.conf управляет поиском баз данных для различных сервисов. Если вы не планируете доступ к сетевым службам (таким как DNS, NIS поиск). Вы должны подготовить простой nsswitch.conf файл который выглядит так:

    Passwd: files shadow: files group: files hosts: files services: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files automount: files aliases: files netgroup: files publickey: files Это указывает, что каждая служба будет иметь доступ только к локальным файлам. Вы также должны включить /lib/libnss_files.so.1, которая загружается динамически для работы с обзором файлов.

    Если вы планируете доступ к сети с вашего загрузочного диска, вы должны создать более замысловатый файл nsswitch.conf. Для подробностей смотрите man страницу nsswitch. Запомните, что вы должны включать файл /lib/libnss_files.so.1 для каждой указанной службы.

    4.5. Модули.

    Если у Вас модульное ядро, Вы должны обдумать, какие модули Вы хотите загружать с вашего загрузочного диска после загрузки. Возможно Вы захотите включить ftape и zftape модули, если у вас есть устройства резервирования на гибкой ленте, модули для SCSI устройств, если они у Вас есть, и, возможно, модули PPP или SLIP, если Вы хотите иметь доступ к сети при аварии.

    Эти модули могут быть помещены в /lib/modules. Вы должны также включить insmod, rmmod и lsmod. В зависимости от того, хотите ли Вы загружать модули автоматически, Вы можете также включать modprobe, depmod и swapout. Если Вы используете kerneld, включаете его наряду с /etc/conf.modules.

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

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

    4.6. Некоторые заключительные подробности.

    Некоторые системные программы, типа login, жалуются, если файл /var/run/utmp и каталог /var/log не существует. mkdir -p /mnt/var/{log,run} touch /mnt/var/run/utmp В заключение, после того, как Вы установили все библиотеки, Вам необходимо, выполнить ldconfig, чтобы пересоздать /etc/ld.so.cache на корневой файловой системе. Кэш сообщает загрузчику, где найти библиотеки. Чтобы пересоздать ld.so.cache, выдайте следующие команды: chdir /mnt; chroot /mnt /sbin/ldconfig chroot необходим, потому что ldconfig всегда пересоздает кэш для корневой файловой системы.

    4.7. Перенос.

    Как только Вы закончили создание корневой файловой системы, размонтируйте ее, скопируйте ее в файл, и сожмите: umount /mnt dd if=DEVICE bs=1k | gzip -v9 > rootfs.gz Это может занять несколько минут. После окончания у Вас будет файл rootfs.gz , который и есть ваша сжатая корневая файловая система. Вы должны проверить размер, чтобы удостовериться, что она поместиться на дискете; если не помещается вы должны вернуться и удалить некоторые файлы. Некоторые подсказки содержатся в секции "Уменьшение размера корневой файловой системы ".