Разметка, форматирование и использование новых устройств хранения данных в Linux

()

Введение

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

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

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

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

Подготовка к форматированию

Итак, для чего вы будете использовать устройство? Это один большой кусок памяти или лучше поделить его на несколько кусков? Какую файловую систему вы хотите использовать? Ext2? ReiserFS? VFAT? Если вам нужен доступ к информации на устройстве не только из Linux но и из Windows, то вам нужно выбрать файловую систему, которую сможет читать Windows. Linux может без проблем читать огромное количество файловых систем, однако Windows имеет ограничения в этом плане. Если вы действительно хотите иметь полный доступ к информации на устройстве где установлены обе системы, то наверное VFAT будет наилучшим выбором, конечно, если вам ничего не мешает, как это было в моем случае. Читайте дальше и вы узнаете об альтернативном решении. Если же устройство предназначается только для Linux, то лучше использовать Ext2/Ext3, ReiserFS или XFS. Конечно понятие «из коробки» к Linux мало применимо, и тем не менее перечисленные файловые системы идут включенными по умолчанию в ядро большинства дистрибутивов Linux. Обсуждение преимуществ или недостатков упомянутых файловых систем выходит за рамки обсуждения данной статьи.

Техническое примечание: файловая система описывает то, каким образом информация храниться на вашем устройстве. Когда вы покупаете новый жёсткий диск вы должны отформатировать его в ту файловую систему, которую будет использовать ваша операционная система. Windows использует NTFS как файловую систему по умолчанию для жёстких дисков и VFAT для съёмных носителей, таких как карты USB-Flash. Linux может использовать самые различные файловые системы. Самыми распространёнными из них являются Ext2, Ext3 и ReiserFS. Однако Windows, без дополнительных драйверов, не может работает с этими файловыми системами, в то время как Linux замечательно работает с VFAT и NTFS. Поэтому рекомендуется использовать одну из этих системы, если вы собираетесь использовать диск не только в Linux, а так же и в Windows. Но вам никто не мешает установить драйвер самостоятельно, для получения доступа на запись/чтение к Ext2/Ext3, скачав с http://www.fs-driver.org/google вы можете найти и другие продукты, например http://www.crossmeta.com/crossmeta.html). Драйвер легко устанавливается и все необходимые манипуляции интуитивны, для мало понятливых имеются инструкция в виде экранных снимков в разделе screenshots. В любом другом случае - любая файловая система будет прекрасным выбором.

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

Предупреждение: процесс разметки диска уничтожит всю информацию на нём. Поэтому всегда делайте резервную копию важной информации с него перед разметкой.

Давайте сначала выясним какой диск вы имеете. Если это IDE-диск - Linux будет испольовать /dev/hd* для обозначения устроства. "*" означает какую-то букву. Обычно первый диск IDE имеет обозначение /dev/hda. Разделы на дисках обозначаются числами после имени диска. Т.е. hda1 для первого раздела, hda2 для второго и т.д. Чтобы посмотреть какие разделы и соответственно с каких подключённых дисков уже используются выполните:

# mount |grep -e hd -e sd

На моей машине вывод команды выглядит так:

/dev/hda3 on / type reiserfs (rw,acl,user_xattr)
/dev/hda1 on /windows/C type ntfs (ro,noexec,nosuid,nodev,gid=100,umask=0002,nls=utf8)

из чего смело можно заключить, что подключен один диск hda, имеющий, как минимум, разделы hda1 и hda3 отформатированные под ntfs и feiserfs соответственно.

SATA, SCSI и USB-устройства используют ту же систему обозначений, однако вместо /dev/hd* будет /dev/sd*.

Есть и другие способы увидеть какие разделы сейчас смонтированы. Например, можно использовать команду df. Она покажет нам обозначения файловой системы, свободное и используемое пространство, а так же полный размер раздела и точку монтирования. Запустите терминал и введите команду df -h. Вы увидете примерно вот такую картину:

user@linux~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             8.3G  2.4G  5.5G  30% /
/dev/hda2              99M   26M   69M  27% /boot

Из вывода команды df вы можете увидеть что ваша система имеет один диск, /dev/hda, который является IDE-диском и разбит на два раздела - / и /boot.

Техническое примечание: ключ -h команды df делает информацию "human readable". Т.е. читаемой человеком. С этим ключом все размеры показываются в кило, мега и гигабайтах, а не в блоках.

Если вы добавите ещё один IDE-диск, то он будет виден как /dev/hdb или /dev/hdc, или /dev/hdd. Чтобы выяснить однозначно как называется, вновь, добавленный диск можно выполнить следующую команду:

# dmesg |grep -e hd -e sd

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

1  Kernel command line: root=/dev/hda3 vga=0x317 selinux=0    resume=/dev/hda2   splash=silent PROFILE=T-SystemsOffice
2     ide0: BM-DMA at 0x2440-0x2447, BIOS settings: hda:DMA, hdb:pio
3     ide1: BM-DMA at 0x2448-0x244f, BIOS settings: hdc:DMA, hdd:pio
4  hda: FUJITSU MHT2040AT, ATA DISK drive
5  hda: max request size: 128KiB
6  hda: 78140160 sectors (40007 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(100)
7  hda: cache flushes supported
8   hda: hda1 hda2 hda3
9  hdc: TOSHIBA DVD-ROM SD-C2612, ATAPI CD/DVD-ROM drive
10 hdc: ATAPI 24X DVD-ROM drive, 192kB Cache, UDMA(33)
11 ReiserFS: hda3: found reiserfs format "3.6" with standard journal
12 ReiserFS: hda3: using ordered data mode
13 ReiserFS: hda3: journal params: device hda3, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
14 ReiserFS: hda3: checking transaction log (hda3)
15 ReiserFS: hda3: Using r5 hash to sort names
16 Adding 1048312k swap on /dev/hda2.  Priority:-1 extents:1
17 SCSI device sda: 195371568 512-byte hdwr sectors (100030 MB)
18 sda: assuming drive cache: write through
19 SCSI device sda: 195371568 512-byte hdwr sectors (100030 MB)
20 sda: assuming drive cache: write through
21  sda: sda1 sda2
22 Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
23 Attached scsi removable disk sdb at scsi0, channel 0, id 0, lun 1
24 Attached scsi removable disk sdc at scsi0, channel 0, id 0, lun 2
25 Attached scsi removable disk sdd at scsi0, channel 0, id 0, lun 3
26 EXT3 FS on sda2, internal journal
27 EXT3 FS on sda2, internal journal

На первый взгляд какая-то «абракадабра», но давайте попробуем её расшифровать. Посмотрим на строку 4, оказывается мы можем узнать производителя и модель моего первого диска. В строке 6 другие технические параметры диска, например его размер 40007 MB или, примерно, 40ГБ. Если посмотреть на строку 8, то выясняется, что диск имеет три раздела, хотя, если помните, командой mount мы видели подключенными только два, ответ находиться в строке 16, из которой следует, что раздел hda2 является swap-разделом имеющим размер 1048312k, т.е. примерно 1ГБ. Строка 9 сообщает, что в моем компьютере имеется CD/DVD-ROM подключенный на IDE1 – это видно из строки 3 – мастером. И наконец, в строке 17 мы узнаём, что подключенный диск в моей системе определился как sda и имеет размер, примерно, 100ГБ, несмотря на то, что это обычный IDE диск я подключил его через USB интерфейс (есть у меня такая коробочка под названием DigiMate II-plus), а как было упомянуто выше накопители подключаемые через USB получают имена sd*. Пусть вас не смущают строки 22-25, дело в том, что DigiMate ещё и своеобразный card-reader, пусть ни одной карты не было воткнуто сами устройства были также определены.

Техническое примечание: Что такое swap-раздел? Данный раздел – это аналог page file (Windows NT,2000,XT ...) или swap file (для более ранних версий Windows). Система использует его для выгрузки не активных, редко использованных, имеется ввиду реже чем другие, которые называются активные, задач/процессов из RAM, тем самым высвобождая больше рабочего пространство для активных задач/процессов.

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

Разметка диска

На своей воображаемой системе мы добавим IDE-диск на 50 гигабайт, который система назвала /dev/hdb. Для начала разметки нужно войти в систему как root и запустить fdisk:

user@linux~# fdisk /dev/hdb

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

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): 

Я буду использовать этот диск только для хранения данных, и поэтому я создам на нём один первичный раздел, под который и отдам всё свободное место:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-6081, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-6081, default 6081): 6081

Command (m for help):

Затем мы выберем p для первичного "primary") раздела, 1 для создания первого раздела, после чего нужно указать первый и последний цилиндры на диске. Так же вы можете оперировать и с размерам испольуя ключевые слова +size.

Техническое примечание: Вы можете иметь толко четыре первичных раздела на устройстве. Если вам нужно больше - вы должны создать расширенный раздел, внутри которого можно содавать "логические разделы". Вы можете иметь только один расширенный раздел среди четырёх первичных. Он даже имеет свой тип файловой системы - 0x05!

Внутри расширенного раздела вы чисто теоретически можете иметь неограниченной количество логических. Однако Linux ограничивает их количество до 63 на IDE и 15 на SCSI-дискх.

Никакие изменения вашеих разделов не будут применены пока вы не введёте команду "w". Эта команда записывает новую таблицу разделов на диск, с которым вы в данный момент работаете. Возможно вам понадобиться перезагрузить вашу систему, если вы работали с основным диском вашей Linux-системы.

Помните что ничего не применяется пока вы не выполните команду "w". Вы всегда можете выйти из fdisk используя команду "q". Изменения при выходе не сохраняться.

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

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

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

Это самая лёгкая часть процесса. Будет использовать команда mkfs, которая создаёт файловую систему на указанном разделе. Эта команда имеет множество опций, которыми вы можете воспользоваться:

mkfs [ -V ] [ -t fstype ] [ fs-options ] filesys [ blocks ]

  • Ключ -V делает вывод команды более информативным. Вы сможете узнать подробнее о том что она делает.
  • Ключ -t определяет какую файловую систему вы хотите использовать. Например если вы хотите использовать файловую систему VFAT на нашем воображаем диске, то вам нужно выполнить вот такую команду (с правами root):
    mkfs -t vfat /dev/hdb1
    Вы можете указать ext2, ext3, vfat, msdos (старый вариант fat), minix, aix и ещё много других типов файловых систем.
  • filesys это раздел, который мы хотим отформатировать. Например наш воображаемый диск имеет единственный раздел /dev/hdb1.
  • blocks указывает на размер создаваемой файловой системы. Мы не будем использовать эту опцию, поскольку мы форматируем раздел полностью.

Заключение

Сейчас ваш новый жёсткий диск или флэш-карта готова к использованию. Осталось только смонтировать это устройство (что Windows и многие дистрибутивы Linux делают автоматически) и начать пользоваться! Теперь вы знаете немного больше о системном администрировании и должны меньше бояться Linux. Данные здесь рекоммендации помогут вам уверенней работать с Linux и BSD.

Источник

Ключевые слова: fdisk, mkfs.

Комментарии:

2006-10-23 20:57:41 (#)

Мне кажется что такую статью ты бы мог и сам написать или взять из handbook'a Gentoo Linux

2006-10-23 20:58:35 (#)

хотя в 5 утра этим заниматься я бы не смог

MooSE 2006-10-24 01:03:24 (#)

ladm: тут на самом деле много воды и кое-чего не хватает. Но это было интересно.

Я ещё кое-что про APT хочу перевести. А потом глядишь наконец задокументирую установку своего jabber-сервера:)

Vlad 2006-10-24 12:57:02 (#)

Мое мнение - статья не закончена!

Цитата:


Linux может использовать самые различные файловые системы. Основными из них являются Ext2, Ext3 и ReiserFS. Однако Windows не работает с этими файловыми системами, в то время как Linux замечательно работает с VFAT и NTFS.

http://www.fs-driver.org/
пусть это и сторонний продукт, но он прекрасно работает. У меня внешний хард на 100Г, с двумя разделами 20Г - фат32 и 80Г - екст2, с обоими разделами работаю и под Линукс и В2К.

Цитата:


Если вы добавите ещё один IDE-диск, то он будет виден как /dev/hdb. А ещё один - /dev/hdc.

Не факт, что в такой последовательности. Было бы практичней, особенно для новичков, рассказать под каким индексом диск определился действительно. А то повесят второй хард слейвом на второй IDE, т.к. слейв на первом был занят сд, вот уж помучаются. О скази вообше молчу.

Ещё о LVM было бы не плохо в этой статье услышать/прочесть, да и о RAID. Это я уже придераюсь. Но начало положенно.

MooSE 2006-10-24 14:49:58 (#)

Vlad: У меня к Вам предложение (абсолютно без наезда): я вы стучите ко мне в асю - 239089614 или jabber - moose@jabber.finet.ru и мы с вами обсуждаем что именно вы хотели бы сделать. Потом я даю вам права на правку статей, и вы её дописываете.

Как вам такой вариант?

2006-10-24 18:23:36 (#)

Ок! коллективный труд рулит... :)
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE