Способи оплати Abuse

Розбивка диска на розділи в Linux

11.10.2023, 21:17

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

Інструкція з розбивки диска

У Linux все вважається файлами, і жорсткий диск, зокрема, представлений у вигляді файлу. З цього випливає цікава можливість. Ми можемо використовувати звичайний файл замість жорсткого диска для своїх експериментів.

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

sudo dd if=/dev/zero of=/disk.img count=2000 bs=1M

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

$ sudo parted /disk.img

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

$ sudo parted /dev/sda

Утиліта запуститься в інтерактивному режимі і ви зможете виконувати потрібні команди. Тепер спробуємо подивитися список розділів на пристрої:

(parted) print

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

(parted) mktable gpt

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

Тепер створимо новий розділ із файловою системою ext2 розміром 100 мегабайт, використовуючи команду mkpart. Їй потрібно передати три параметри: тип розділу, файлову систему і координати. Тип розділу може бути:

  • primary
  • logical
  • extended (первинний, логічний і розширений).

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

Створюємо первинний:

(parted) mkpart primary ext2 0 400М

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

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

(parted) print

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

(parted) mkpart primary ext4 400 1000M
(parted) mkpart primary ext4 1000M -0M

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

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

(parted) resizepart 3 1600M

Можна вказати потрібний розмір у відсотках:

(parted) resizepart 3 60%

А тепер створення розділу parted:

mkpart primary ext4 1600M -0M

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