Розмітка дисків у 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.