Добавить в цитаты Настройки чтения

Страница 44 из 113



[[email protected]/* */ ~]$ sudo umount /dev/sdb1

[[email protected]/* */ ~]$ sudo fdisk /dev/sdb

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

Команда (m для справки)::

)

После ввода команды m на экране появится меню программы:

Справка:

  DOS (MBR)

   a   изменить флаг загрузочного раздела

   b   изменить вложенную BSD-метку диска

   c   переключить флаг совместимости с DOS

  Общие

   d   удалить раздел

   F   список свободного нераспределенного пространства

   l   список известных типов разделов

   n   добавить новый раздел

   p   показать таблицу разделов

   t   изменить тип раздела

   v   проверить таблицу разделов

   i   печать информации о разделах

  Разное

   m   показать это меню

   u   изменить единицы отображения/ввода

   x   дополнительные функции (только для экспертов)

  Script

   I   загрузка разметки диска из файла сценария sfdisk

   O   сохранение разметки диска в файле сценария sfdisk

  Сохранить и выйти

   w   сохранить таблицу на диск и выйти

   q   выйти без сохранения изменений

  Создать новую метку

   g   создать новую пустую таблицу разделов GPT

   G   создать новую пустую таблицу разделов SGI (IRIX)

   o   создать новую пустую таблицу разделов DOS

   s   создать новую пустую таблицу разделов Sun

Первое, что следует сделать, — исследовать список имеющихся разделов. Для этого введите команду p, она выведет таблицу разделов на устройстве:

Command (m for help): p

Disk /dev/sdb: 16 MB, 16006656 bytes

1 heads, 31 sectors/track, 1008 cylinders

Units = cylinders of 31 * 512 = 15872 bytes

  Device Boot       Start         End      Blocks   Id  System

/dev/sdb1               2        1008       15608+   b  W95 FAT32

Обратите внимание, что устройство имеет объем 16 Мбайт и единственный раздел (1), занимающий 1006 цилиндров из 1008 доступных на устройстве. Раздел идентифицирован как раздел Windows 95 FAT32. Некоторые программы используют этот идентификатор, ограничивая виды операций с диском, но чаще изменение идентификатора не влечет серьезных последствий. Однако ради демонстрации мы изменим его, чтобы показать, что это раздел Linux. Для этого нужно сначала узнать, какой идентификатор обозначает разделы Linux. В листинге, приведенном выше, мы видели, что существующий раздел имеет идентификатор (столбец Id) b. Чтобы увидеть список известных типов разделов, вернитесь к меню программы и обратите внимание на пункт:

l список известных типов разделов

Если ввести команду l, появится длинный список допустимых типов разделов. Среди них можно увидеть идентификатор b типа существующего раздела и идентификатор 83 для Linux. Вернемся обратно к меню программы, где можно увидеть команду изменения идентификатора раздела:

t изменить тип раздела

Введите t и затем новый идентификатор:

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): 83



Changed system type of partition 1 to 83 (Linux)

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

Для этого введите команду w:

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x

partitions, please see the fdisk manual page for additional

information.

Syncing disks.

[[email protected]/* */ ~]$

Если бы мы решили оставить устройство в неизменном состоянии, то могли бы ввести команду q и покинуть программу без записи изменений на устройство. Преду­преждающее сообщение, выглядящее зловещим, можно просто игнорировать7.

Создание новой файловой системы с помощью mkfs

Завершив редактирование разделов (довольно простое, хотя так бывает не всегда), мы создадим на флеш-диске новую файловую систему. Для этого воспользуемся программой mkfs (сокращенно от make filesystem — создать файловую систему), способной создавать разные файловые системы. Чтобы создать на устройстве файловую систему ext3, следует передать команде параметр -t и с типом файловой системы ext3, затем указать имя устройства и раздел, который требуется отформатировать:

[[email protected]/* */ ~]$ sudo mkfs -t ext3 /dev/sdb1

mke2fs 1.40.2 (12-Jul-2012)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

3904 inodes, 15608 blocks

780 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=15990784

2 block groups

8192 blocks per group, 8192 fragments per group

1952 inodes per group

Superblock backups stored on blocks:

        8193

Writing inode tables: done

Creating journal (1024 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

[[email protected]/* */ ~]$

Когда выбирается тип файловой системы ext3, программа выводит массу информации. Чтобы восстановить на устройстве оригинальную файловую систему FAT32, следует указать тип файловой системы vfat:

[[email protected]/* */ ~]$ sudo mkfs -t vfat /dev/sdb1

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

Проверка и восстановление файловой системы

Знакомясь с файлом /etc/fstab, мы видели некие странные цифры в конце каждой строки. Каждый раз, когда система загружается, она проверяет целостность файловых систем перед их монтированием. Эту проверку выполняет программа fsck (сокращенно от filesystem check — проверка файловой системы). Последнее число в каждой записи в файле fstab определяет порядок проверки файловых систем. В примере, приведенном выше, видно, что корневая файловая система проверяется первой, вслед за ней проверяются файловые системы home и boot. Устройства с нулем в последнем поле не проверяются стандартными механизмами.

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

Проверить наш флеш-диск (который предварительно необходимо размонтировать) можно с помощью следующей команды:

[[email protected]/* */ ~]$ sudo fsck /dev/sdb1

fsck 1.40.8 (13-Mar-2012)

e2fsck 1.40.8 (13-Mar-2012)

/dev/sdb1: clean, 11/3904 files, 1661/15608 blocks

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

что такое fsck?

В культуре Unix слово «fsck» часто используется взамен распространенного ругательства, в котором три буквы совпадают с буквами в имени команды. Это показательно — вы почти наверняка будете произносить упомянутое слово, оказавшись в ситуации, вынуждающей запустить fsck.