Усе, що ви намагаєтеся вивчити, потребує практики. Робота з жорсткими дисками в 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 завершена. Роботу з файловими системами ми в цій статті опустимо, оскільки для цього використовуються вже інші команди, які ми розглянемо в одній з наступних статей.