Skip to content

7. Disk, fayl tizimi va LVM — 25 ta masala

Ma'lumot yo'qolishi xavfi

Bu mavzudagi buyruqlar (fdisk, mkfs, pvcreate, mdadm --create) diskdagi ma'lumotni qaytarib bo'lmas darajada yo'q qiladi. Ularni faqat virtual mashinaga qo'shilgan bo'sh qo'shimcha diskda bajaring (/dev/sdb, /dev/sdc). Buyruqdan oldin lsblk bilan qurilma nomini ikki marta tekshiring.

Diskni ko'rish

1. Barcha blok qurilmalarni daraxt ko'rinishida chiqaring.
Misol: sda ostida sda1, sda2; TYPE ustunida disk/part/lvm.

Yechim

lsblk
MOUNTPOINTS bo'sh bo'lgan qurilma ishlatilmayapti (yoki o'rnatilmagan).

2. Fayl tizimi turi va UUID ni ko'rsating.
Misol: /dev/sda1: UUID="..." TYPE="ext4"

Yechim

lsblk -f
sudo blkid
/etc/fstab da qurilma nomi (/dev/sdb1) emas, UUID ishlatish ishonchli: disklar tartibi o'zgarganda nom almashishi mumkin.

3. O'rnatilgan fayl tizimlari bo'yicha band va bo'sh joyni, fayl tizimi turi bilan ko'rsating.
Misol: /dev/sda2 ext4 20G 8.1G 11G 43% /

Yechim
df -hT

4. Disk "to'la" emas, lekin yangi fayl yaratib bo'lmayapti (No space left on device). Sababni toping.
Misol: IUse% 100%.

Yechim

df -i
Fayl tizimida yetarli bayt bo'lsa ham, inode lar tugagan bo'lishi mumkin (juda ko'p mayda fayl, masalan, sessiya yoki kesh kataloglari). Ko'p fayl turgan katalogni topish: sudo find /var -xdev -type f | cut -d/ -f1-4 | sort | uniq -c | sort -rn | head.

5. /var ichidagi kataloglarni hajmi bo'yicha, kattasi oxirida bo'lib chiqaring.
Misol: 1.2G /var/lib, 3.4G /var/log.

Yechim

sudo du -h --max-depth=1 /var 2>/dev/null | sort -h
sort -h odam o'qiydigan hajmlarni (K, M, G) to'g'ri saralaydi.

6. Tizimdagi eng katta 5 ta faylni toping.
Misol: hajm va yo'l.

Yechim
sudo find / -xdev -type f -printf '%s %p\n' 2>/dev/null | sort -rn | head -n 5

7. df disk 100% to'la deydi, lekin du -sh /* yig'indisi ancha kam. Sababni tushuntiring va toping.
Misol: lsof +L1 da (deleted) fayllar.

Yechim

sudo lsof +L1
Jarayon faylni ochib turgan holda uni o'chirgan bo'lsa, nom yo'qoladi (du ko'rmaydi), lekin joy jarayon yopmaguncha band qoladi (df hisoblaydi). Odatiy holat: o'chirilgan katta log. Yechim — jarayonni qayta ishga tushirish yoki log'ni o'chirish o'rniga > logfile bilan bo'shatish.

Bo'lim, fayl tizimi va mount

8. /dev/sdb diskda bitta bo'lim yarating (GPT), ext4 bilan formatlang.
Misol: lsblk /dev/sdb → sdb1, ext4.

Yechim

sudo parted -s /dev/sdb mklabel gpt mkpart data ext4 1MiB 100%
sudo mkfs.ext4 /dev/sdb1
lsblk -f /dev/sdb
Interaktiv muqobil: sudo fdisk /dev/sdb (g, n, w). mkfs fayl tizimini yaratadi va undagi barcha ma'lumotni o'chiradi.

9. Yangi bo'limni /mnt/data ga vaqtincha o'rnating, ishlashini tekshiring va ajrating.
Misol: findmnt /mnt/data o'rnatilganda chiqadi.

Yechim
sudo mkdir -p /mnt/data
sudo mount /dev/sdb1 /mnt/data
findmnt /mnt/data
sudo umount /mnt/data

10. O'rnatishni doimiy qiling: /etc/fstab ga UUID bilan yozuv qo'shing va xatosiz ishlashini tekshiring.
Misol: sudo mount -a xabarsiz tugaydi.

Yechim
UUID=$(sudo blkid -s UUID -o value /dev/sdb1)
echo "UUID=$UUID /mnt/data ext4 defaults,nofail 0 2" | sudo tee -a /etc/fstab
sudo mount -a
findmnt /mnt/data

Ehtiyot bo'ling

fstab dagi xato server yuklanmay qolishiga (emergency mode) olib kelishi mumkin. Qayta ishga tushirishdan oldin doim sudo mount -a bilan tekshiring. nofail — disk yo'q bo'lsa ham yuklanishni to'xtatmaydi.

11. umount "target is busy" desa, kim ushlab turganini toping.
Misol: /mnt/data: kernel 1 mcd.

Yechim

sudo fuser -vm /mnt/data
sudo lsof +f -- /mnt/data
Ko'pincha biror terminal shu katalogda turgan bo'ladi (cd /mnt/data). Jarayon tugagach umount ishlaydi. Majburlab ajratish (umount -l) oxirgi chora.

12. Hozir o'rnatilgan barcha fayl tizimlarini manba va parametrlari bilan ko'rsating.
Misol: TARGET SOURCE FSTYPE OPTIONS.

Yechim
findmnt

13. 1 GB li swap fayl yarating va yoqing.
Misol: swapon --show da /swapfile 1G.

Yechim

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
swapon --show
free -h
chmod 600 shart: boshqalar o'qiy oladigan swap xotira ma'lumotlarini oshkor qiladi. Doimiy qilish uchun /swapfile none swap sw 0 0 ni fstab ga yozing.

LVM

14. /dev/sdb va /dev/sdc ni LVM uchun tayyorlang (Physical Volume).
Misol: Physical volume "/dev/sdb" successfully created.

Yechim
sudo pvcreate /dev/sdb /dev/sdc
sudo pvs

15. Ikkala PV dan vg0 nomli Volume Group yarating.
Misol: vgs da vg0 va umumiy hajm.

Yechim

sudo vgcreate vg0 /dev/sdb /dev/sdc
sudo vgs
LVM qatlamlari: PV (fizik disk) → VG (umumiy hovuz) → LV (undan kesib olingan "bo'lim").

16. vg0 dan 500 MB li data Logical Volume yarating.
Misol: /dev/vg0/data.

Yechim
sudo lvcreate -L 500M -n data vg0
sudo lvs

17. Yangi LV ni formatlang va /srv/data ga o'rnating.
Misol: df -h /srv/data.

Yechim

sudo mkfs.ext4 /dev/vg0/data
sudo mkdir -p /srv/data
sudo mount /dev/vg0/data /srv/data
df -h /srv/data
Yo'l /dev/mapper/vg0-data yoki /dev/vg0/data ko'rinishida bo'lishi mumkin: ikkalasi bir qurilma.

18. data ni o'rnatilgan holda (to'xtatmasdan) 200 MB ga kattalashtiring va fayl tizimini ham kengaytiring.
Misol: df -h /srv/data da hajm ~700M.

Yechim

sudo lvextend -r -L +200M /dev/vg0/data
df -h /srv/data
-r (--resizefs) LV bilan birga fayl tizimini ham kattalashtiradi. -rsiz LV kattalashadi, lekin fayl tizimi eski o'lchamda qoladi va resize2fs /dev/vg0/data (ext4) yoki xfs_growfs /srv/data (XFS) alohida kerak. Kichraytirish xavfliroq: XFS'ni kichraytirib bo'lmaydi.

19. pvs, vgs, lvs chiqishidagi VFree ustuni nimani bildiradi?
Misol: vg0 2 1 0 wz--n- 1.99g 1.30g.

Yechim

sudo vgs
VFree — VG ichida hali hech bir LV ga ajratilmagan joy. LV'ni kattalashtirish uchun shu joy kerak; yo'q bo'lsa, avval VG'ga yangi disk qo'shiladi: vgextend vg0 /dev/sdd.

20. data dan snapshot oling va undan eski holatni tekshiring.
Misol: lvs da snap1 va Origin: data.

Yechim

sudo lvcreate -s -n snap1 -L 100M /dev/vg0/data
sudo lvs
Snapshot faqat o'zgargan bloklarni saqlaydi. Ajratilgan 100 MB to'lsa, snapshot yaroqsiz bo'lib qoladi, uni bajarilgach lvremove bilan o'chiring. Snapshot zaxira nusxa emas: u xuddi shu VG diskida.

RAID, tekshirish, shifrlash

21. Ikkita disk bilan RAID1 (ko'zgu) yarating va holatini ko'ring.
Misol: /proc/mdstat da [UU].

Yechim

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
cat /proc/mdstat
sudo mdadm --detail /dev/md0
[UU] — ikkala disk sog'lom, [U_] — biri tushib ketgan (degraded). RAID zaxira nusxa emas: tasodifan o'chirilgan fayl ikkala diskdan ham o'chadi.

22. RAID1 dagi disklardan biri ishdan chiqdi. Uni qanday almashtirasiz?
Misol: mdadm --detail da State: clean, degraded.

Yechim

sudo mdadm --manage /dev/md0 --fail /dev/sdc
sudo mdadm --manage /dev/md0 --remove /dev/sdc
sudo mdadm --manage /dev/md0 --add /dev/sdd
watch cat /proc/mdstat
Yangi disk qo'shilgach qayta sinxronlanish (recovery) boshlanadi; shu vaqt ichida ikkinchi disk ishdan chiqsa, ma'lumot yo'qoladi.

23. O'rnatilmagan fayl tizimini xatoga tekshiring (o'zgartirmasdan).
Misol: fsck.ext4 -n /dev/sdb1 → clean.

Yechim

sudo umount /dev/sdb1
sudo fsck -n /dev/sdb1
-n — faqat o'qiydi, hech narsani tuzatmaydi. O'rnatilgan (mounted) fayl tizimida fsck ni ishga tushirmang: buzilish xavfi.

24. ext4 va XFS ni kattalashtirish buyruqlari qanday farq qiladi?
Misol: resize2fs va xfs_growfs.

Yechim

sudo resize2fs /dev/vg0/data     # ext4: qurilma yo'li
sudo xfs_growfs /srv/data        # XFS: o'rnatilgan katalog
ext4 o'rnatilgan holda ham kattalashadi; XFS faqat o'rnatilgan holatda kattalashadi va kichrayolmaydi. Fayl tizimi turini df -T yoki lsblk -f da ko'rasiz.

25. Bo'lim ustida LUKS shifrlashni sozlang, ochib o'rnating va yoping.
Misol: /dev/mapper/secure paydo bo'ladi.

Yechim

sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup open /dev/sdb1 secure
sudo mkfs.ext4 /dev/mapper/secure
sudo mount /dev/mapper/secure /mnt/data
sudo umount /mnt/data
sudo cryptsetup close secure
luksFormat bo'limdagi barcha ma'lumotni o'chiradi. Parolni yo'qotsangiz, ma'lumotni tiklab bo'lmaydi: sarlavhaning zaxira nusxasini oling: cryptsetup luksHeaderBackup.