Bo'limlar (partitions)
Disklar va block qurilmalar maqolasida diskni qanday aniqlash va ko'zdan kechirish ko'rib chiqildi. Keyingi qadam — haqiqiy foydalanish uchun shu diskni bo'limlarga ajratish. Bo'lim (partition) — diskning chegaralari aniq belgilangan, o'zining fayl tizimini saqlashi yoki swap vazifasini bajarishi mumkin bo'lgan qismi. Bu maqola MBR va GPT bo'limlar jadvallari o'rtasidagi farqni, fdisk, gdisk va parted vositalarini hamda bo'limlashning to'liq amaliy vaziyatini ko'rib chiqadi. Agar keyingi qadam bir nechta diskni birlashtirish yoki hajmini o'zgartirish mumkin bo'lgan, qatlamli saqlash bo'lsa, bu RAID (mdadm) yoki LVM asoslari — ikkalasi ham ko'pincha shu yerda yaratilgan bo'limlar ustiga quriladi.
Nimalarni o'rganasiz
Bu maqola oxirida siz quyidagilarni qila olasiz:
- MBR va GPT bo'limlar jadvallari o'rtasidagi asosiy farqlarni tushuntirish;
- primary, extended va logical bo'limlarni bir-biridan farqlash;
fdiskbilan MBR bo'lim vagdiskbilan GPT bo'lim yaratish;- skript bilan, bitta qatorda bo'limlarni boshqarish uchun
parteddan foydalanish; - nega kernelga yangi yaratilgan bo'lim haqida xabar berish (
partprobe) kerakligini tushuntirish; - bo'limni o'chirish yoki o'zgartirish xavflarini va ulardan qanday saqlanishni tushunish.
MBR va GPT: bo'limlar jadvali turlari
Diskning bo'limlar jadvali — disk boshida saqlanadigan va qaysi bayt oraliqlari qaysi bo'limga tegishli ekanini qayd qiladigan tuzilma. Linux ikkita asosiy standartdan foydalanadi.
MBR (Master Boot Record)
MBR — diskning eng boshidagi 512 baytli boot sektorida saqlanadigan eskiroq standart. Uning real cheklovlari bor:
- u faqat 2 TB gacha disk maydonini manzillay oladi;
- ko'pi bilan 4 ta primary bo'lim yaratish mumkin;
- 4 tadan ko'p bo'lim kerak bo'lsa, ulardan biri extended bo'limga (konteynerga) aylanadi va uning ichida cheklanmagan sondagi logical bo'lim yaratish mumkin.
MBR disk (4-primary limit):
┌─────────┬─────────┬─────────────────────────────┐
│ sda1 │ sda2 │ sda3 (extended) │
│ primary │ primary │ ┌─────────┬─────────┐ │
│ │ │ │ sda5 │ sda6 │ ... │
│ │ │ │ logical │ logical │ │
└─────────┴─────────┴──┴─────────┴─────────┴────────┘
Logical bo'limlar raqamlanishi har doim 5 dan boshlanadi (sda5, sda6, ...), chunki 1–4 raqamlari primary/extended bo'limlar uchun ajratilgan — bo'lim fizik jihatdan beshinchi o'rinda turmasa ham.
GPT (GUID Partition Table)
GPT — UEFI standartining bir qismi bo'lgan zamonaviy bo'limlar jadvali:
- 9.4 ZB gacha disklarni qo'llab-quvvatlaydi (amalda cheklov yo'q);
- sukut bo'yicha 128 tagacha bo'limni qo'llab-quvvatlaydi, primary/extended farqi yo'q;
- har bir bo'lim noyob GUID (global noyob identifikator) oladi;
- disk oxirida zaxira nusxani saqlaydi — boshidagi jadval shikastlansa, uni tiklash mumkin (MBR’da bunday zaxira yo'q).
| Xususiyat | MBR | GPT |
|---|---|---|
| Disk maksimal hajmi | 2 TB | 9.4 ZB |
| Bo'limlar maksimal soni | 4 ta primary (yoki 3 + extended) | 128 (sukut bo'yicha) |
| Zaxira jadval | Yo'q | Bor (disk oxirida) |
| UEFI bilan moslik | Faqat legacy BIOS rejimi | UEFI standartining bir qismi |
| Eski OS bilan moslik | Yaxshi | Ayrim eski tizimlar qo'llab-quvvatlamaydi |
Info
Yangi serverlar va 2 TB dan katta disklar uchun GPT tavsiya etiladi. MBR asosan eski tizimlarda yoki eski BIOS ishlaydigan kichik (< 2 TB) muhitlarda uchraydi.
Vositalar: fdisk, gdisk, parted
| Vosita | MBR | GPT | Rejim |
|---|---|---|---|
fdisk |
Ha | Ha (zamonaviy versiyalar) | Interaktiv menyu |
gdisk |
Yo'q | Ha | fdisk ga o'xshash interaktiv menyu |
parted |
Ha | Ha | Interaktiv va skript bilan (--script) |
fdisk — MBR uchun eng keng tarqalgan, an’anaviy vosita, zamonaviy versiyalari GPT’ni ham qo'llab-quvvatlaydi. gdisk fdisk bilan bir xil uslubdagi menyuga ega, lekin faqat GPT bilan ishlaydi. parted bo'limni bitta buyruq qatori chaqiruvida yaratish imkonini beradi — skriptlar va avtomatlashtirish uchun qulay.
Danger
fdisk, gdisk va parted diskning bo'limlar jadvalini o'zgartiradi. Bo'limlar jadvalini o'chirish yoki noto'g'ri o'zgartirish diskdagi barcha ma’lumotlarni yo'q qilishi mumkin. Quyidagi har bir misolni faqat bo'sh, ishlatilmayotgan diskda, ideal holda o'chirib tashlasa bo'ladigan sinov VM’ida bajaring va buni production diskka qo'llashdan oldin har doim to'liq zaxira nusxa oling.
Amaliy vaziyat: yangi diskni MBR bilan uchta bo'limga ajratish
Vaziyat. /dev/sdb — yangi, 30 GiB hajmli, bo'limlarga ajratilmagan disk. Uni uchta bo'limga ajratish kerak: swap uchun 1 GiB, ma’lumotlar uchun 20 GiB va qolgan joy uchinchi bo'lim sifatida.
1. Diskning joriy holatini tekshiring (faqat o'qish)
Diskda bo'limlar jadvali yo'qligini va u bo'sh ekanini tasdiqlang.
2. fdisk ni interaktiv rejimda ishga tushiring
fdisk interaktiv buyruq so'rovini ochadi (Command (m for help):). Yordam uchun m ni bosing.
3. Yangi MBR (DOS) bo'limlar jadvalini yarating
o yangi, bo'sh DOS (MBR) bo'limlar jadvalini yaratadi. Bu diskdagi mavjud har qanday bo'limlar jadvalini butunlay o'chirib yuboradi.
4. Birinchi bo'lim — 1 GiB swap
Command (m for help): n
Partition type: p
Partition number (1-4, default 1): [Enter]
First sector: [Enter]
Last sector: +1G
Bo'lim yaratilgach, uning turini swap’ga o'zgartirish kerak:
82 — Linux swap tur kodi (fdisk ning sukut bo'yicha turi 83 — oddiy Linux fayl tizimi).
5. Ikkinchi bo'lim — 20 GiB
Command (m for help): n
Partition type: p
Partition number (2-4, default 2): [Enter]
First sector: [Enter]
Last sector: +20G
6. Uchinchi bo'lim — diskning qolgan qismi
Command (m for help): n
Partition type: p
Partition number (3,4, default 3): [Enter]
First sector: [Enter]
Last sector: [Enter]
Oxirgi sektor uchun Enter ni bosish diskdagi qolgan barcha bo'sh joyni shu bo'limga beradi.
7. Yozishdan oldin ko'rib chiqing
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 2099199 2097152 1G 82 Linux swap
/dev/sdb2 2099200 43907071 41807872 20G 83 Linux
/dev/sdb3 43907072 62914559 19007488 9.1G 83 Linux
8. Diskka yozing
w barcha o'zgarishlarni diskka yozadi va fdisk dan chiqadi. Shu paytgacha diskka fizik jihatdan hech narsa yozilmagan — q bilan chiqish hammasini bekor qilgan bo'lardi.
9. Kernelga yangi bo'limlar jadvali haqida xabar bering
Ba’zan fdisk yangi bo'limlarni yozgandan keyin ham, agar disk ishlatilayotgan bo'lsa (Device or resource busy), ishlab turgan kernel yangilanishni avtomatik qo'llay olmaydi. partprobe kernelni bo'limlar jadvalini qayta o'qishga majbur qiladi — kerak bo'lsa, muqobil sifatida qayta yuklash ham ishlaydi.
10. Natijani tasdiqlang
Xulosa. Uchta bo'lim muvaffaqiyatli yaratildi. Keyingi qadam — swap bo'limini mkswap/swapon bilan tayyorlash (Swap fayl va partition) va qolgan ikkita bo'limda fayl tizimi yaratish (Fayl tizimi turlari).
gdisk bilan GPT bo'lim yaratish
GPT bo'limlar jadvali kerak bo'lganda gdisk fdisk ga o'xshash menyuni taqdim etadi:
Command (? for help): o # create a new, empty GPT table
Command (? for help): n # new partition
Partition number (1-128, default 1): [Enter]
First sector: [Enter]
Last sector: [Enter] # the whole disk as one partition
Hex code or GUID: [Enter] # default: Linux filesystem
Command (? for help): p # review
Command (? for help): w # write to disk
fdisk ning zamonaviy versiyalari ham GPT’ni to'g'ridan-to'g'ri qo'llab-quvvatlaydi — fdisk /dev/sdc ichidagi g buyrug'i yangi GPT jadvalini yaratadi, qolgan qadamlar (n, p, w) esa MBR’dagi bilan bir xil.
parted: bitta qatorda, skript bilan bo'limlash
parted ham interaktiv, ham --script flag'i bilan avtomatlashtirilgan rejimda ishlaydi — Ansible yoki bash skriptlarida foydali.
mklabel gpt— yangi GPT bo'limlar jadvalini yaratadi (MBR uchunmklabel msdos);mkpart primary ext4 0% 100%— diskning butun sig'imini (0% dan 100% gacha) bitta bo'limga beradi;ext4fayl tizimi haqidagi ishora sifatida berilgan (bu faqat metama’lumot — haqiqiy fayl tizimi hali yaratilmagan).
Bir nechta bo'limni ketma-ket yaratish:
sudo parted /dev/sdd --script \
mklabel gpt \
mkpart primary ext4 0% 30% \
mkpart primary ext4 30% 100%
Natijani tekshirish:
Model: VMware Virtual disk (scsi)
Disk /dev/sdd: 21.5GB
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 6459MB 6458MB primary
2 6459MB 21.5GB 15.0GB primary
Disk kattalashtirilgandan keyin bo'limni kengaytirish
Eng ko'p uchraydigan real vazifalardan — va intervyu savollaridan — biri: "Bulut provayderi asosiy diskni 30 GiB dan 50 GiB ga kattalashtirdi. Qo'shimcha joydan qanday foydalanasiz?" Diskni kattalashtirish undagi bo'limni yoki fayl tizimini kattalashtirmaydi; ikkalasi alohida qadamlar.
fdisk dagi tuzoq shundaki, uning odatiy "bo'limni o'chirib, kattaroq hajmda qayta yaratish" usuli faqat bo'lim diskdagi oxirgi bo'lim bo'lsa va uning boshlang'ich sektori aynan bir xil saqlansa ishlaydi — aks holda ma’lumotlar yo'qoladi. Xavfsiz, aynan shu maqsad uchun yaratilgan vosita — growpart (cloud-guest-utils paketidan):
sudo apt install cloud-guest-utils
# grow partition 1 on /dev/sdb to fill the free space after it
sudo growpart /dev/sdb 1
Disk va bo'lim raqami orasidagi bo'sh joyga e’tibor bering (/dev/sdb1 emas, /dev/sdb 1) — growpart ularni ikkita argument sifatida qabul qiladi.
Bo'lim kattalashgandan keyin ham fayl tizimini unga moslab kengaytirish kerak:
Info
Agar growpart yoki lsblk hali ham diskning eski hajmini ko'rsatsa, kernel hajmi o'zgargan qurilmani hali qayta o'qimagan — bo'limni kengaytirishdan oldin uni echo 1 | sudo tee /sys/class/block/sdb/device/rescan bilan qayta skanerlang (Disklar va block qurilmalar maqolasiga qarang).
Bo'limni o'chirish
d — bo'limni o'chirish buyrug'i; u keyin qaysi raqamli bo'limni o'chirishni so'raydi. Boshqa hamma narsa kabi, o'chirish ham w bosilmaguncha diskka yozilmaydi.
Danger
Bo'limlar jadvalidan yozuvni olib tashlash undagi fayl tizimi yoki ma’lumotlarni darhol o'chirmaydi, lekin OS o'sha bo'limni "mavjud emas" deb hisoblay boshlaydi va uni qayta yaratish yoki boshqa maqsadda ishlatish eski ma’lumotlarni ustidan yozib, ularni tiklab bo'lmaydigan qiladi. O'chirishdan oldin bo'lim mount qilinmaganini (umount) va kerakli ma’lumotlarning zaxira nusxasi olinganini tasdiqlang.
Keng tarqalgan xatolar
w bosilishidan oldin buyruqlar allaqachon qo'llangan deb hisoblash
fdisk va gdisk da har bir n, t, d buyrug'i faqat xotirada saqlanadi — u faqat w bosilganda diskka yoziladi. q bilan chiqish har bir o'zgarishni bekor qiladi. Bu xatodan ortga qaytish imkonini beradi, lekin w ishlagandan keyin bekor qilib bo'lmaydi.
Kernel yangi bo'limni darhol ko'rmasligi
Ayrim tizimlarda fdisk/parted bilan yozilgan yangi bo'limlar jadvali lsblk da darhol ko'rinmaydi. sudo partprobe <disk> yoki sudo udevadm settle ni sinab ko'ring; agar yordam bermasa, qayta yuklash kafolatlangan yechim.
MBR ostida 4 tadan ortiq primary bo'lim yaratishga urinish
MBR faqat 4 ta primary bo'limni (yoki 3 ta primary + 1 ta extended) qo'llab-quvvatlaydi. Ko'proq kerak bo'lsa, to'rtinchi bo'lim extended bo'lishi va uning ichida logical bo'limlar yaratilishi kerak — yoki butunlay GPT’ga o'ting.
Bo'lim tur kodini (t buyrug'i) unutish
fdisk yangi bo'limni sukut bo'yicha 83 (Linux) turi bilan yaratadi. Swap uchun 82 yoki EFI System Partition uchun ef kabi kodlarni qo'lda o'rnatish kerak — aks holda mkswap yoki bootloader bo'limni noto'g'ri aniqlashi mumkin.
Mashqlar
- O'chirib tashlasa bo'ladigan VM’ga yangi virtual disk qo'shing va uni MBR sxemasi ostida
fdiskbilan ikkita bo'limga ajrating (masalan, 5 GiB va qolgani). - Xuddi shu yoki boshqa yangi diskda
gdiskbilan GPT bo'limlar jadvalini yarating va butun diskni qamrab oladigan bitta bo'lim ajrating. parted --scriptyordamida uchinchi diskda bitta buyruqlar ketma-ketligida (skript sifatida) ikkita bo'lim yarating, so'ng natijaniparted printvalsblkbilan solishtiring.- Sinov diskidagi bitta bo'limni
fdiskorqali o'chiring va natijanipartprobebilan tasdiqlang.
Mashqni bajardim deyish uchun: maqsadli tuzilish (bo'limlar soni va hajmlari) berilganda MBR yetarlimi yoki GPT kerakmi — buni ayta olishingiz va tanlovni asoslab bera olishingiz kerak.
Xulosa
Bo'limlar jadvali diskni mantiqiy qismlarga ajratishning asosi; MBR — 2 TB va 4 ta primary bo'lim bilan cheklangan eski standart, GPT esa katta hajmlar va ko'p bo'limlarni qo'llab-quvvatlaydigan zamonaviy standart. fdisk va gdisk interaktiv, parted --script esa avtomatlashtirish uchun qulay. Har bir o'zgarish w bosilmaguncha vaqtinchalik, lekin undan keyin qaytarib bo'lmaydi — shuning uchun har doim avval faqat o'qiydigan buyruqlar (fdisk -l, lsblk) bilan tekshirib, zaxira nusxani qo'lda ushlab davom etishga arziydi. Bo'limlarni ortiqcha himoya (redundancy) yoki unumdorlik uchun bir nechta diskka tarqatishning keyingi qadami — RAID (mdadm).