Розмітка дисків у Linux, Losst

При перевстановленні системи, встановленні нового дистрибутива або просто реорганізації файлових систем ми часто маємо справу з жорсткими дисками. Часто потрібно додавати, видаляти або змінювати розмір розділів, керувати прапорами або конвертувати файлові системи. Для цього в Linux є досить різні інструменти як з графічним інтерфейсом, так і консольних. Розібратися в графічному інтерфейсі Gparted, я думаю вам не складно, але в деяких випадках буває потрібна розбивка жорсткого диска на розділи linux в терміналі, без доступу до сервера Х, а це може стати серйозною проблемою.

У цій статті ми розберемо як виконувати основні операції, які ми звикли робити в Gparted, такі як розмітка диска в linux, видалення та створення розділу linux, у терміналі за допомогою утиліти parted. Спочатку розглянемо саму команду parted.

Синтаксис parted

Синтаксис parted виглядає так:

$ parted [опції] пристрій [команда]

У квадратних дужках наведено необов'язкові аргументи.

опції вказують як працюватиме програма, наприклад, інтерактивний режим роботи чи скриптовий, чи потрібно просто вивести довідку

пристрій - жорсткий диск, з яким буде працювати програма.

команда - дія, яку потрібно виконати над жорстким диском.

Опції та команди parted

У parted всього кілька опцій та величезна кількість команд.

  • -h - вивести довідку про програму
  • -v - вивести версію програми
  • -s - скриптовий режим, програма працює без запитів до користувача
  • -i - інтерактивний режим, користувач вводить команди в інтерактивному режимі. За промовчанням програма працює у цьому режимі.

Команд не дуже багато, але навіть пам'ятати їх все не обов'язково. Розглянемо лише ті, які нам знадобляться у сьогоднішніх прикладах:

  • help команда - допомога по вибраній команді
  • mkpart тип розділу файлова система початок кінець - створення розділу linux з файловою системою починаючи з позиції початок закінчуючи кінець, два останні параметри задаються в мегабайтах за замовчуванням
  • mktable тип - створити таблицю розділів
  • print - відобразити таблицю розділів
  • quit - вийти
  • resize розділ кінець - змінити розмір розділу
  • rm розділ - видалити розділ
  • select розділ - встановити розділ як поточний
  • set розділ прапор - встановити прапор для розділу. Стан може бути on (включено) або off (вимкнено)

Раніше підтримувалися також опції роботи з файловою системою mkfs, check, mkpartfs, але починаючи з версії 2.4 вони були видалені.

Я розумію, що зараз розмітка дисків в linux для вас незрозуміла і розпливчаста, але з прикладами стане набагато ясніше. Більше не будемо про теорію, перейдемо до прикладів.

Розмітка диска в Linux

У всьому, що ви вивчаєте, потрібна практика і робота з жорсткими дисками linux не виняток. Але практикуватися на реальному диску, ризикуючи пошкодити файлову систему не зовсім правильно, а створювати віртуальну машину для таких цілей надто непрактично. Але є рішення. У Linux все є файлами, і жорсткий диск також представлений у вигляді файлу. Із цього випливає цікава нагода. Ми можемо використовувати звичайний файл замість жорсткого диска для експериментів.

Створимо собі тестовий полігон командою:

dd if=/dev/zero of=/disk.iso count=2000M

Таким чином,ми отримаємо файл розміром 2000 мегабайт заповнений нулями, з яким можна спокійно працювати.

Запустимо parted, передавши йому замість пристрою наш файл, щоб далі була виконана розбивка жорсткого диска linux:

Програма запуститься в інтерактивному режимі, і ви зможете виконувати потрібні команди:

GNU Parted 3.1 Using /disk.iso Welcome to GNU Parted! Тип 'help' to view a list of commands. (parted)

Спочатку спробуємо переглянути список розділів на пристрої:

Disk /home/sergiy/disk.iso: 1992MB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags:

Він порожній, тому що навіть немає таблиці розділів. Поки її немає, розмітка дисків у Linux не може бути виконана, ми маємо її створити. Для цього скористаємося командою mktable:

Будемо ми створили таблицю розділів типу gpt, але можна вибрати одну з цих: aix, amiga, bsd, dvh, gpt_sync_mbr, gpt, mac, msdos, pc98, sun, loop

Тепер давайте створимо новий розділ із файловою системою ext2 розміром 100 мегабайт. Для цього є команда mkpart, як ви пам'ятаєте їй потрібно передати три параметри: тип розділу, файлову систему та координати. Тип розділу може бути: primary, logical, extended (первинний, логічний та розширений).

У gpt можна створювати необхідну кількість первинних розділів і замислюватися про їх тип. Це все було створено для MBR, у цій таблиці є обмеження на кількість первинних розділів – лише чотири. Тому доводилося створювати три первинні і один розширений, в який вкладалися вже скільки потрібно логічних.

Ну так ось, створюємо первинний:

mkpart primary ext2 0 400м

Оскільки це перший розділ, ми починаємо з нуля, а закінчуємо потрібним нам розміром - 400 мегабайт.

Дивимосясписок розділів ще раз:

Sector size (logical/physical): 512B/512B Партія Table: gpt Disk Flags:

Number Start End Size File system Name Flags 1 17,4kB 400MB 400MB primary

Створимо ще кілька розділів, наприклад для коня системи та домашньої папки:

mkpart primary ext2 400 1000M

mkpart primary ext2 1000M -0M

Параметр -0 означає вести відлік від кінця розділу, таким чином буде зайнято весь доступний простір під третій розділ. Дивимося, що вийшло:

Number Start End Size File system Name Flags 1 17,4kB 400MB 400MB primary 2 400MB 1000MB 600MB primary 3 1000MB 1992MB 992MB primary

Робота з диском у Linux здійснюється за їхніми номерами. Давайте зменшимо останній розділ і створимо після нього ще один:

А тепер створюємо:

mkpart primary ext4 1600M -0M

Номер Start End Size File system Name Flags 1 17,4kB 400MB 400MB primary 2 400MB 1000MB 600MB primary 3 1000MB 1600MB 600MB primary 4 16

Видалимо щойно створений четвертий розділ:

Задамо мітки для існуючих розділів за допомогою команди name:

Зробимо перший розділ завантажувальною командою set:

Можна встановлювати такі прапори: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, type, irst

Ось у принципі і все. Розбивка диска на розділи Linux завершена. Роботу з файловими системами ми у цій статті опустимо, тому що для цього використовуються вже інші команди, які ми розглянемо в одній із наступних статей.

Висновки тепер ви знаєте достатньо інформації, щоб не загубитися у випадку, якщо опинитеся без доступу до графічного інтерфейсу і вам знадобитьсярозбиття жорсткого диска linux.