Команда fdisk. Управление разделами жёсткого диска

Thank you for reading this post, don't forget to subscribe!

fdisk (сокра­ще­ние от “format disk“, фор­ма­ти­ро­вать диск) — это наи­бо­лее рас­про­стра­нен­ная ути­ли­та команд­ной стро­ки для рабо­ты с дис­ка­ми в Linux/Unix систе­мах. При помо­щи этой коман­ды мож­но про­смат­ри­вать, созда­вать, уда­лять, изме­нять, копи­ро­вать и пере­ме­щать раз­де­лы на жёст­ком дис­ке, исполь­зуя про­стой интер­фейс тек­сто­вых меню.

Это очень полез­ный инстру­мент для выде­ле­ния про­стран­ства для новых раз­де­лов, орга­ни­за­ции про­стран­ства на  новых дис­ках, реор­га­ни­за­ции ста­рых дис­ков, а так­же копи­ро­ва­ния или пере­ме­ще­ния дан­ных на новых дис­ков. Он поз­во­ля­ет созда­вать до четы­рех пер­вич­ных раз­де­лов и неко­то­рое коли­че­ство логи­че­ских (рас­ши­рен­ных) раз­де­лов в зави­си­мо­сти от раз­ме­ра жест­ко­го дис­ка в вашей системе.

Просмотр всех разделов диска

Для про­смот­ра всех доступ­ных раз­де­лов исполь­зу­ет­ся опция -l (listing — пере­чис­ле­ние). Раз­де­лы пере­чис­ля­ют­ся по име­нам, напри­мер, /dev/sda, /dev/sdb или /dev/sdc.

Просмотр разделов заданного диска

Для про­смот­ра всех раз­де­лов задан­но­го жест­ко­го дис­ка ука­жи­те опцию -l с име­нем устрой­ства. Напри­мер, сле­ду­ю­щая коман­да отоб­ра­зит все раз­де­лы дис­ка /dev/sda:

Командный режим

Что­бы вой­ти в команд­ный режим, про­сто вве­ди­те fdisk с име­нем жёст­ко­го дис­ка, напри­мер, /dev/sda, как пока­за­но ниже:

Для полу­че­ния спис­ка команд, кото­рые fdisk может выпол­нить на дис­ке, вве­ди­те “m”. Рас­смот­рим зна­че­ние этих команд.

a  toggle a bootable flag — сде­лать диск загрузочным
b   edit bsd disklabel — редак­ти­ро­вать bsd-мет­ку диска
c   toggle the dos compatibility flag — уста­но­вить флаг сов­ме­сти­мо­сти с DOS
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 — создать новую пустую таб­ли­цу раз­де­лов DOS
p   print the partition table — выве­сти таб­ли­цу раз­де­лов (ана­ло­гич­на fdisk -l)
q   quit without saving changes — вый­ти без сохранения
s   create a new empty Sun disklabel — создать новую мет­ку дис­ка Sun
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) — допол­ни­тель­ные функ­ции (толь­ко  для экспертов)

Удаление раздела

Допу­стим, нам нуж­но уда­лить опре­де­лен­ный раз­дел, напри­мер, /dev/sda4, с опре­де­лен­но­го жёст­ко­го дис­ка, напри­мер, /dev/sda. Сна­ча­ла нуж­но зай­ти в команд­ный режим:

Затем вве­ди­те d для уда­ле­ния раз­де­ла. После это­го у вас будет запро­шен номер раз­де­ла для уда­ле­ния с дис­ка /dev/xvdb. Для уда­ле­ния раз­де­ла номер 2 (то есть, /dev/xvdb2) нуж­но вве­сти соот­вет­ству­ю­щую  циф­ру, 2. Затем нуж­но вве­сти коман­ду w, что­бы запи­сать таб­ли­цу на диск и выйти.

Как мы видим раз­дел /dev/xvdb2 был удален.

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

Создание нового раздела

Вой­ди­те в команд­ный режим и вве­ди­те “n”:

При созда­нии ново­го раз­де­ла нуж­но выбрать одну из двух опций: extended для логи­че­ско­го раз­де­ла или primary для пер­вич­но­го и нажать, соот­вет­ствен­но, e или p. Затем потре­бу­ет­ся вве­сти номе­ра пер­во­го и послед­не­го цилин­дра раз­де­ла (либо сме­ще­ние в цилин­драх или раз­мер). Луч­ше все­го оста­вить задан­ное по умол­ча­нию зна­че­ние пер­во­го цилин­дра и вве­сти нуж­ный раз­мер раз­де­ла, напри­мер, “+5000M”, что озна­ча­ет раз­мер 5000 мега­байт. После созда­ния раз­де­ла нуж­но нажать w для сохра­не­ния изме­не­ний в таб­ли­це разделов.

Теперь мы видим на дис­ке /dev/xvdb два раздела.

Так­же при созда­нии раз­де­ла мож­но ука­зать раз­мер раз­де­ла с помо­щью опции +size{K,M,G}. Т.е если нуж­но создать раз­дел раз­ме­ром 2 Гб, в каче­стве послед­не­го сек­то­ра мож­но ука­зать +2G

Форматирование раздела

После созда­ния ново­го раз­де­ла не забудь­те отфор­ма­ти­ро­вать его коман­дой mkfs. Для это­го выпол­ни­те сле­ду­ю­щую команду:

где в клю­че -t ука­зы­ва­ем тип фай­ло­вой систе­мы в кото­рую мы хотим отфор­ма­ти­ро­вать наш раздел.

Проверка размера раздела

Когда раз­дел отфор­ма­ти­ро­ван, про­верь­те его раз­мер при помо­щи опции -s (раз­мер отоб­ра­жа­ет­ся в бло­ках). Так мож­но узнать раз­мер любо­го задан­но­го устройства:

Исправление нумерации в таблице разделов

Если вы уда­ли­ли логи­че­ский раз­дел, воз­мож­ны ошиб­ки вида ‘partition out of order‘ (нару­ше­ние поряд­ка раз­де­лов) или ‘Partition table entries are not in disk order‘ (запи­си таб­ли­цы раз­де­лов не соот­вет­ству­ют поряд­ку дис­ков). Допу­стим у нас диск со сле­ду­ю­щи­ми разделами

Напри­мер, при уда­ле­нии трёх логи­че­ских раз­де­лов xvdb2, xvdb3 и xvdb4 и созда­нии ново­го раз­де­ла мож­но пред­по­ло­жить, что его имя будет xvdb2. Одна­ко, систе­ма создаст раз­дел xvdb3. Это про­ис­хо­дит пото­му, что после уда­ле­ния раз­де­ла xvdb5 будет пере­ме­ще­на на место xvdb2, а сво­бод­ное про­стран­ство — пере­рас­пре­де­ле­но в конец.
Для исправ­ле­ния подоб­ных про­блем и назна­че­ния вновь создан­но­му раз­де­лу име­ни xvdb2 нуж­но перей­ти в режим допол­ни­тель­ных функ­ций (x) и выпол­нить экс­перт­ную коман­ду (f):

Есте­ствен­но, после выпол­не­ния коман­ды (f) нуж­но сохра­нить изме­не­ния коман­дой (w) . После исправ­ле­ния поряд­ка раз­де­лов сооб­ще­ния об ошиб­ках долж­ны прекратиться.

Флаг загрузочного раздела

Что­бы вклю­чить или отклю­чить на задан­ном раз­де­ле флаг загру­зоч­но­го раз­де­ла (отоб­ра­жа­ет­ся сим­во­лом ‘*’ в таб­ли­це раз­де­лов), нуж­но выпол­нить сле­ду­ю­щие действия.

fdisk -l /dev/xvda

Вы уви­ди­те на дис­ке /dev/sda1 флаг загру­зоч­но­го раз­де­ла (звёз­доч­ка ‘*’)

Далее вве­ди­те коман­ду «a» для сня­тия фла­га загру­зоч­но­го раз­де­ла, а затем вве­ди­те номер раз­де­ла (в дан­ном слу­чае 1 для /dev/sda1). Флаг загру­зоч­но­го раз­де­ла будет снят, сим­вол звёз­доч­ки (*) пропадет.

Для назна­че­ния загру­зоч­но­го дис­ка нуж­но так­же исполь­зо­вать опцию «a». Напри­мер назна­чим загру­зоч­ным диск xvda2