104.1 Lecke 1
Tanúsítvány: |
LPIC-1 |
---|---|
Verzió: |
5.0 |
Témakör: |
104 Eszközök, Linux fájlrendszerek, Fájlrendszer-hierarchia szabvány |
Fejezet: |
104.1 Partíciók és fájlrendszerek létrehozása |
Lecke: |
1/1 |
Bevezetés
Bármely operációs rendszerben a lemezt partícionálni kell, mielőtt használni lehetne. A partíció a fizikai lemez egy logikai részhalmaza, és a partíciókról szóló információk egy partíciós táblázatban vannak tárolva. Ez a táblázat tartalmazza a partíció első és utolsó szektorára és típusára vonatkozó információkat, valamint az egyes partíciók további részleteit.
Az operációs rendszer általában minden partíciót külön “lemezként” kezel, még akkor is, ha mind ugyanazon a fizikai adathordozón található. A Windows rendszerekben olyan betűket kapnak, mint a C:
(történelmi okok miatt ez a fő (main)), D:
és így tovább. Linuxon minden partíciót a /dev
alatt található mappához rendelnek, például /dev/sda1
vagy /dev/sda2
.
Ebben a leckében megtanuljuk, hogyan hozhatunk létre, törölhetünk, állíthatunk vissza partíciókat és hogyan változtathatjuk meg méretüket a három leggyakoribb segédprogrammal (fdisk
, gdisk
és parted
), hogyan hozhatunk létre fájlrendszert rajtuk, és hogyan hozhatunk létre és állíthatunk be egy swap partíciót vagy swap fájlt, amelyet virtuális memóriaként használhatunk.
Note
|
Történelmi okokból ebben a leckében a tárolóeszközökre “lemezek”-ként fogunk hivatkozni, annak ellenére, hogy a modern tárolórendszerek, például az SSD-k és a flash tárolók egyáltalán nem tartalmaznak “lemezeket”. |
Az MBR és GPT megértése
A merevlemezeken a partíciós információk tárolásának két fő módja van. Az első az MBR (Master Boot Record), a második pedig a GPT (GUID Partition Table).
- MBR
-
Ez az MS-DOS (pontosabban az 1983-as PC-DOS 2.0) korai időszakából maradt fenn, és évtizedekig ez volt a PC-k szabványos particionálási sémája. A partíciós tábla a lemez első szektorában, az úgynevezett Boot Sector-ban található, a bootloaderrel együtt, amely a Linux rendszereken általában a GRUB. Az MBR-nek azonban van egy sor olyan korlátja, amely akadályozza a modern rendszereken való használatát, mint például az, hogy nem képes 2 TB-nál nagyobb méretű lemezek címzésére, és hogy lemezenként csak 4 elsődleges partíciót tartalmaz.
- GUID
-
Olyan particionálási rendszer, amely az MBR számos korlátját kiküszöböli. A lemez méretének nincs gyakorlati korlátja, és a partíciók maximális számát csak maga az operációs rendszer korlátozza. Ez a rendszer gyakrabban megtalálható a modernebb gépeken, amelyek a régi PC BIOS helyett UEFI-t használnak.
A rendszergazdai feladatok során nagyon valószínű, hogy mindkét séma használatban lesz, ezért fontos tudni, hogyan kell használni az egyes sémákhoz tartozó eszközöket a partíciók létrehozásához, törléséhez vagy módosításához.
MBR partíciók menedzselése FDISK-el
Az MBR partíciók kezelésének szabványos segédprogramja Linuxon az fdisk
. Ez egy interaktív, menüvezérelt segédprogram. Használatához írjuk be az fdisk
parancsot, majd a szerkeszteni kívánt lemeznek megfelelő eszköz nevét. Például a
# fdisk /dev/sda
parancs a rendszer első SATA-csatlakozású eszközének (sda
) partíciós tábláját szerkeszti. Ne feledjük, hogy a fizikai lemeznek megfelelő eszközt kell megadni, nem pedig annak egyik partícióját (például /dev/sda1
).
Note
|
Ebben a leckében minden lemezzel kapcsolatos műveletet a |
Meghíváskor az fdisk
egy üdvözlést, majd egy figyelmeztetést jelenít meg, és várja a parancsokat.
# fdisk /dev/sda Welcome to fdisk (util-linux 2.33.1). (Üdvözöllek a fdisk (util-linux 2.33.1)-en) Changes will remain in memory only, until you decide to write them. (A változtatások a csak memóriában vannak jelen, amíg úgy nem döntünk, hogy beírjuk azokat.) Be careful before using the write command. (Legyünk óvatosak a write parancs használata előtt.) Command (m for help):
A figyelmeztetés fontos. Bármikor létrehozhatunk, szerkeszthetünk vagy törölhetünk partíciókat, de a lemezre nem íródik semmi, hacsak nem használjuk a write (w
) parancsot. Tehát gyakorolhatunk
anélkül, hogy az adatvesztés veszélyét kockáztatnánk, amíg távoltartjuk magunkat a w
billentyűtől. Az fdisk
-ből a változtatások mentése nélkül a q
paranccsal léphetünk ki.
Note
|
Ennek ellenére soha nem szabad fontos lemezen gyakorolni, mivel mindig vannak kockázatok. Használjunk inkább egy tartalék külső lemezt vagy USB flash meghajtót. |
Az aktuális partíciós tábla kiíratása
A p
parancs az aktuális partíciós tábla megjelenítésére szolgál. A kimenet valami ilyesmi lesz:
Command (m for help): p Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors Disk model: CT120BX500SSD1 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x97f8fef5 Device Boot Start End Sectors Size Id Type /dev/sda1 4096 226048942 226044847 107.8G 83 Linux /dev/sda2 226048944 234437550 8388607 4G 82 Linux swap / Solaris
Itt vannak az oszlopok jelentései:
Device
-
A partícióhoz rendelt eszköz.
Boot
-
Megmutatja, hogy a partíció “bootable”-e vagy sem.
Start
-
A szektor, ahol a partíció elkezdődik.
End
-
A szektor, ahol a partíció végződik.
Sectors
-
A partícióban lévő szektorok teljes száma. Szorozzuk meg a szektor méretével, hogy megkapjuk a partíció méretét bájtban.
Size
-
A partíció mérete “ember által olvasható” formátumban. A fenti példában az értékek gigabájtban vannak megadva.
Id
-
A partíció típusát reprezentáló numerikus érték.
Type
-
A partíciótípus leírása.
Elsődleges vs kibővített partíciók
Egy MBR lemezen 2 fő partíciótípus lehet, a primary (elsődleges) és a extended (kibővített). Mint már említettük, a lemezen csak 4 elsődleges partíció lehet, és ha a lemezt “bootolhatóvá” akarjuk tenni, akkor az első partíciónak elsődlegesnek kell lennie.
Ezt a korlátozást úgy lehet megkerülni, hogy létrehozunk egy kiterjesztett partíciót, amely a logikai partíciók tárolójaként szolgál. Lehet például egy elsődleges partíció, egy kiterjesztett partíció, amely a lemezterület fennmaradó részét foglalja el, és ezen belül öt logikai partíció.
Egy olyan operációs rendszer esetében, mint a Linux, az elsődleges és a kiterjesztett partíciókat pontosan ugyanúgy kezelik, így nincsenek “előnyei” az egyiknek a másikkal szemben.
Partíció létrehozása
Partíció létrehozásához használjuk az n
parancsot. Alapértelmezés szerint a partíciókat a lemez ki nem osztott területének kezdetén hozza létre a rendszer. A parancs megkérdezi a partíció típusát (elsődleges vagy kiterjesztett), valamint az első és az utolsó szektort.
Az első szektor esetében általában elfogadhatjuk az fdisk
által javasolt alapértelmezett értéket, kivéve, ha a partíciónak egy adott szektorban kell kezdődnie. Az utolsó szektor megadása helyett megadhatunk egy méretet, amelyet a K
, M
, G
, T
vagy P
(Kilo, Mega, Giga, Tera vagy Peta) betűk követnek. Ha tehát 1 GB-os partíciót szeretnénk létrehozni, akkor az Last sector
-ként megadhatjuk a +1G
értéket, és az fdisk
ennek megfelelően méretezi a partíciót. Az elsődleges partíció létrehozására íme egy példa:
Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-3903577, default 2048): 2048 Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3903577, default 3903577): +1G
Allokálatlan hely keresése
Ha nem tudjuk, mennyi szabad hely van a lemezen, az F
paranccsal megjeleníthetjük a ki nem osztott helyeket, például így:
Command (m for help): F Unpartitioned space /dev/sdd: 881 MiB, 923841536 bytes, 1804378 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes Start End Sectors Size 2099200 3903577 1804378 881M
Partíciók törlése
Egy partíció törléséhez használjuk a d
parancsot. Az fdisk
megkérdezi a törlendő partíció számát, hacsak nem_csak_ egy partíció van a lemezen. Ebben az esetben ez a partíció lesz kiválasztva és azonnal törölve.
Ne feledjük, hogy ha egy kiterjesztett partíciót törlünk, a benne lévő összes logikai partíció is törlődik!
Mind the Gap! - Ügyeljünk a résekre a partíciók közt!
Ne feledjük, hogy amikor új partíciót hozunk létre az fdisk
segítségével, a maximális méret a lemezen lévő összefüggő ki nem osztott hely maximális méretére korlátozódik. Tegyük fel, hogy például a következő partíciótérképünk van:
Device Boot Start End Sectors Size Id Type /dev/sdd1 2048 1050623 1048576 512M 83 Linux /dev/sdd2 1050624 2099199 1048576 512M 83 Linux /dev/sdd3 2099200 3147775 1048576 512M 83 Linux
Majd töröljük a 2-es partíciót és megnézzük a szabad helyet:
Command (m for help): F Unpartitioned space /dev/sdd: 881 MiB, 923841536 bytes, 1804378 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes Start End Sectors Size 1050624 2099199 1048576 512M 3147776 3903577 755802 369M
Ha összeadjuk a fel nem osztott tárhely méretét, elméletileg 881 MB áll rendelkezésünkre. De nézzük meg, mi történik, ha megpróbálunk létrehozni egy 700 MB-os partíciót:
Command (m for help): n Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions) Select (default p): p Partition number (2,4, default 2): 2 First sector (1050624-3903577, default 1050624): Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-2099199, default 2099199): +700M Value out of range.
Ez azért történt, mert a lemezen a legnagyobb összefüggő, ki nem osztott terület a 2. partícióhoz tartozó 512 MB-os blokk. Az új partíció nem tud “átnyúlni” a 3. partíció fölött, hogy az utána lévő fel nem osztott terület egy részét használja.
Partíció típusának megváltoztatása
Esetenként szükség lehet a partíció típusának megváltoztatására, különösen akkor, ha olyan lemezekről van szó, amelyeket más operációs rendszereken és platformokon is használni szeretnénk. Ezt a t
paranccsal tehetjük meg, amelyet a megváltoztatni kívánt partíció száma követ.
A partíció típusát a megfelelő hexadecimális kóddal kell megadni, az összes érvényes kód listáját az l
parancs segítségével nézhetjük meg.
Ne keverjük össze a partíció típusát a rajta használt fájlrendszerrel. Bár kezdetben volt köztük kapcsolat, ma már nem feltételezhetjük, hogy ez igaz. Egy Linux partíció például bármilyen Linux-natív fájlrendszert tartalmazhat, például ext4 vagy ReiserFS.
Tip
|
A Linux partíciók típusa |
GUID partíciók menedzselése a GDISK segítségével
A gdisk
segédprogram az fdisk
megfelelője, ha GPT partícionált lemezekkel dolgozunk. Valójában az interfész az fdisk
mintájára készült, interaktív prompttal és ugyanazokkal (vagy nagyon hasonló) parancsokkal.
Az aktuális partíciós tábla kiíratása
Az p
parancs az aktuális partíciós tábla kiíratására szolgál. A kimenet valami ilyesmi lesz:
Command (? for help): p Disk /dev/sdb: 3903578 sectors, 1.9 GiB Model: DataTraveler 2.0 Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): AB41B5AA-A217-4D1E-8200-E062C54285BE Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 3903544 Partitions will be aligned on 2048-sector boundaries Total free space is 1282071 sectors (626.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2623488 3147775 256.0 MiB 8300 Linux filesystem
Már az elején észreveszünk néhány különböző dolgot:
-
Minden lemez egyedi lemezazonosítóval (GUID) rendelkezik. Ez egy 128 bites hexadecimális szám, amely a partíciós tábla létrehozásakor véletlenszerűen kerül kiosztásra. Mivel ennek a számnak 3,4 × 1038 lehetséges értéke van, elég kicsi az esélye annak, hogy két véletlenszerű lemeznek ugyanaz a GUID-je legyen. A GUID használható annak azonosítására, hogy indításkor melyik fájlrendszert (és hova) kell csatlakoztatni, így nem szükséges az eszköz elérési útvonalát használni (mint például a
/dev/sdb
). -
Látjuk a
Partition table holds up to 128 entries
kifejezést? Így van, egy GPT lemezen akár 128 partíció is lehet. Emiatt nincs szükség primary és extended partíciókra. -
A szabad hely az utolsó sorban szerepel, így nincs szükség az fdisk
F
parancsának megfelelőjére.
Partíció létrehozása
A partíció létrehozásának parancsa az n
, ugyanúgy, mint az fdisk
-ben. A fő különbség az, hogy a partíció száma, valamint az első és utolsó szektor (vagy mérete) mellett a létrehozás során megadhatjuk a partíció típusát is. A GPT partíciók sokkal több típust támogatnak, mint az MBR. A támogatott típusok listáját az l
parancs segítségével ellenőrizhetjük.
Partíció törlése
Egy partíció törléséhez írjuk be a d
-t és a partíció számát. Az fdisk
-től eltérően az első partíció nem lesz automatikusan kiválasztva, ha ez az egyetlen partíció a lemezen.
A GPT lemezeken a partíciókat könnyen újra lehet rendszerezni vagy “rendezni”, hogy elkerülhetők legyenek a számozási sorrendben lévő hiányosságok. Ehhez egyszerűen használjuk az s
parancsot. Képzeljünk el például egy lemezt a következő partíciós táblával:
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2099200 2361343 128.0 MiB 8300 Linux filesystem 3 2361344 2623487 128.0 MiB 8300 Linux filesystem
Ha a második partíciót töröljük, a tábla ilyen lesz:
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 3 2361344 2623487 128.0 MiB 8300 Linux filesystem
Ha használjuk az s
parancsot, ilyen:
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2361344 2623487 128.0 MiB 8300 Linux filesystem
Vegyük észre, hogy a harmadik partíció lett a második.
Rés? Milyen Rés?
Az MBR lemezekkel ellentétben a GPT lemezeken a partíció létrehozásakor a partíció méretét nem korlátozza a összefüggő ki nem osztott terület maximális mennyisége. A szabad szektor minden egyes bitjét felhasználhatjuk, függetlenül attól, hogy az a lemezen hol található.
Helyreállítási lehetőségek
A GPT lemezek a GPT fejléc és a partíciós tábla biztonsági másolatát tárolják, így a lemezek könnyen helyreállíthatók, ha ezek az adatok megsérültek. A gdisk
olyan funkciókat biztosít, amelyek segítik ezeket a helyreállítási feladatokat, és az r
paranccsal érhető el.
A sérült GPT fő fejlécet vagy partíciós táblát a b
és c
paranccsal állíthatjuk helyre, vagy a fő fejlécet és táblát használhatjuk a biztonsági mentés helyreállításához a d
és e
paranccsal. Egy MBR-t GPT-vé alakíthatunk át az f
paranccsal, és az ellenkezőjét is megtehetjük a g
paranccsal, egyéb műveletek mellett. Írjuk be a helyreállítási menübe a ?
parancsot, hogy megkapjuk a rendelkezésre álló helyreállítási parancsok listáját és a leírást arról, hogy mit csinálnak.
Fájlrendszerek létrehozása
A lemez particionálása csak az első lépés a lemez használatához. Ezt követően a partíciót fájlrendszerrel kell formázni, mielőtt adatok tárolására használnánk.
A fájlrendszer szabályozza az adatok tárolását és elérését a lemezen. A Linux számos fájlrendszert támogat, némelyik natív, mint például az ext (Extended Filesystem) család, míg mások más operációs rendszerekből származnak, mint például a FAT az MS-DOS-ból, az NTFS a Windows NT-ből, a HFS és HFS+ a Mac OS-ből stb.
A Linuxon a fájlrendszerek létrehozására használt szabványos eszköz az mkfs
, amely sokféle “ízben” létezik, aszerint, hogy milyen fájlrendszerrel kell dolgoznunk.
ext2/ext3/ext4 fájlrendszer létrehozása
A Extended Filesystem (ext) volt a Linux első fájlrendszere, amelyet az évek során új változatok váltottak fel, az ext2, ext3 és ext4, utóbbi jelenleg is sok Linux-disztribúció alapértelmezett fájlrendszere.
Az mkfs.ext2
, mkfs.ext3
és mkfs.ext4
segédprogramok az ext2, ext3 és ext4 fájlrendszerek létrehozására szolgálnak. Valójában ezek a “segédprogramok” csak szimbolikus linkként léteznek egy másik segédprogramra, az mke2fs
-re. Az mke2fs
az alapértelmezett beállításait aszerint változtatja meg, hogy milyen néven hívják. Mint ilyenek, mindegyikük viselkedése és parancssori paraméterei megegyeznek.
A legegyszerűbb felhasználási mód:
# mkfs.ext2 TARGET
Ahol a TARGET
annak a partíciónak a neve, ahol a fájlrendszert létre kell hozni. Például egy ext3 fájlrendszer létrehozásához a /dev/sdb1
partíción a parancs a következő:
# mkfs.ext3 /dev/sdb1
Ahelyett, hogy a létrehozni kívánt fájlrendszernek megfelelő parancsot használnánk, átadhatjuk a -t
paramétert a mke2fs
-nek, amelyet a fájlrendszer neve követ. Például a következő parancsok egyenértékűek, és egy ext4 fájlrendszert hoznak létre a /dev/sdb1
lemezen.
# mkfs.ext4 /dev/sdb1 # mke2fs -t ext4 /dev/sdb1
Parancssori paraméterek
Az mke2fs
parancssori paraméterek és opciók széles skáláját támogatja. Íme néhány a legfontosabbak közül. Ezek mindegyike alkalmazható az mkfs.ext2
, mkfs.ext3
és mkfs.ext4
esetében is:
-b SIZE
-
Az eszközben lévő adatblokkok méretét a
SIZE
értékre állítja be, ami lehet 1024, 2048 vagy 4096 bájt blokkonként. -c
-
A fájlrendszer létrehozása előtt ellenőrzi a céleszközön a rossz blokkokat. Alapos, de sokkal lassabb ellenőrzést végezhetünk, ha ezt a paramétert kétszer adjuk meg, mint az
mkfs.ext4 -c -c TARGET
paraméterben. -d DIRECTORY
-
A megadott mappa tartalmát az új fájlrendszer gyökerébe másolja. Hasznos, ha a lemezt “előzetesen” fel kell tölteni előre meghatározott fájlokkal.
-F
-
Veszély, Will Robinson! Ez az opció kényszeríti az mke2fs-t, hogy létrehozzon egy fájlrendszert, még akkor is, ha a neki vagy a célnak átadott egyéb opciók veszélyesek vagy értelmetlenek. Ha kétszer adjuk meg (mint az
-F -F
), akkor még arra is használható, hogy létrehozzunk egy fájlrendszert egy olyan eszközön, ami be van csatolva vagy használatban van, ami nagyon, nagyon rossz dolog. -L VOLUME_LABEL
-
A kötet címkéjét a
VOLUME_LABEL
paraméterben megadott címkéjére állítja be. Ez a címke legfeljebb 16 karakter hosszú lehet. -n
-
Ez egy igazán hasznos opció, amely szimulálja a fájlrendszer létrehozását, és megmutatja, hogy mi történne, ha az
n
opció nélkül hajtanánk végre. Gondoljunk rá úgy, mint egy “próba” üzemmódra. Jó a dolgok ellenőrzésére, mielőtt bármilyen változtatást ténylegesen a lemezre rögzítenénk. -q
-
Csendes üzemmód. Az
mke2fs
normálisan fut, de nem ad ki semmilyen kimenetet a terminálra. Hasznos, ha azmke2fs
-t egy szkriptből futtatjuk. -U ID
-
Ez a partíció UUID-jét (Universally Unique Identifier) az ID-ként megadott értékre állítja be. Az UUID-k 128 bites, hexadecimális jelölésű számok, amelyek arra szolgálnak, hogy a partíciót az operációs rendszer számára egyedileg azonosítsák. Ezt a számot 32 számjegyű sztringként kell megadni 8-4-4-4-12 formátumban, azaz 8 számjegy, kötőjel, 4 számjegy, kötőjel, 4 számjegy, kötőjel, 4 számjegy, kötőjel, 12 számjegy, például
D249E380-7719-45A1-813C-35186883987E
. Az azonosító helyett olyan paramétereket is megadhatunk, mint aclear
a fájlrendszer UUID-jének törléséhez, arandom
egy véletlenszerűen generált UUID használatához, vagy atime
egy időalapú UUID létrehozásához. -V
-
Verbose mód, a szokásosnál sokkal több információt ír ki működés közben. Hasznos hibakeresési célokra.
XFS fájlrendszer létrehozása
Az XFS egy nagy teljesítményű fájlrendszer, amelyet eredetileg a Silicon Graphics fejlesztett ki 1993-ban az IRIX operációs rendszerhez. Teljesítménye és megbízhatósági jellemzői miatt általában szerverekhez és más olyan környezetekhez használják, amelyek nagy (vagy garantált) fájlrendszer-sávszélességet igényelnek.
Az XFS fájlrendszerek kezelésére szolgáló eszközök az xfsprogs
csomag részét képezik. Ezt a csomagot esetleg manuálisan kell telepíteni, mivel néhány Linux-disztribúcióban alapértelmezés szerint nem szerepel. Mások, mint például a Red Hat Enterprise Linux 7, az XFS-t használják alapértelmezett fájlrendszerként.
Az XFS fájlrendszerek legalább két részre oszlanak, egy log szekcióra, ahol a fájlrendszer összes műveletének naplóját (általában Journal_nak nevezik) vezetik, és az _adat szekcióra. A naplórész az adatrészen belül is elhelyezkedhet (ez az alapértelmezett viselkedés), vagy akár egy külön lemezen is, a jobb teljesítmény és megbízhatóság érdekében.
Az XFS fájlrendszer létrehozásának legalapvetőbb parancsa az mkfs.xfs TARGET
, ahol a TARGET
az a partíció, amelyen a fájlrendszert létrehozni szeretnénk. Például: mkfs.xfs /dev/sda1
.
Az mke2fs
-hez hasonlóan az mkfs.xfs
is számos parancssori opciót támogat. Íme néhány a leggyakoribbak közül.
-b size=VALUE
-
A fájlrendszerben lévő blokkméretet bájtban a
VALUE
-ban megadott értékre állítja be. Az alapértelmezett érték 4096 bájt (4 KiB), a minimális érték 512, a maximális pedig 65536 (64 KiB). -m crc=VALUE
-
Az
-m
-el kezdődő paraméterek metaadat opciók. Ez engedélyezi (ha aVALUE
értéke1
) vagy letiltja (ha aVALUE
értéke0
) a CRC32c ellenőrzés használatát a lemezen lévő metaadatok integritásának ellenőrzésére. Ez lehetővé teszi a jobb hibaérzékelést és a hardverproblémákhoz kapcsolódó összeomlásokból való helyreállítást, ezért alapértelmezés szerint be van kapcsolva. Ennek az ellenőrzésnek a teljesítményre gyakorolt hatása minimális, így általában nincs ok a kikapcsolására. -m uuid=VALUE
-
A partíció UUID-jét a VALUE-ként megadottra állítja be. Ne feledjük, hogy az UUID-k 32 karakteres (128 bites) számok hexadecimális alapon, 8, 4, 4, 4 és 12 számjegyű, kötőjellel elválasztott csoportokban, például
1E83E3A3-3AE9-4AAC-BF7E-29DFFECD36C0
. -f
-
Kényszeríti egy fájlrendszer létrehozását a céleszközön, még akkor is, ha a céleszközön már van fájlrendszer.
-l logdev=DEVICE
-
Ez a fájlrendszer naplószekcióját a megadott eszközön helyezi el az adatszekció helyett.
-l size=VALUE
-
Ez a naplószekció méretét a
VALUE
értékben megadott méretre állítja be. A méret megadható bájtokban, és olyan utótagok is használhatók, mint azm
vagyg
. Az-l size=10m
például 10 megabájtra korlátozza a naplószekciót. -q
-
Csendes üzemmód. Ebben az üzemmódban az
mkfs.xfs
nem fogja kiírni a létrehozandó fájlrendszer paramétereit. -L LABEL
-
Beállítja a fájlrendszer címkéjét, amely legfeljebb 12 karakter hosszú lehet.
-N
-
Hasonlóan az
mke2fs
-n
paraméteréhez, azmkfs.xfs
kiírja az összes paramétert a fájlrendszer létrehozásához, anélkül, hogy ténylegesen létrehozná azt.
FAT vagy VFAT fájlrendszer létrehozása
A FAT fájlrendszer az MS-DOS-ból származik, és az évek során számos átdolgozása jelent meg, amelyek 1996-ban a Windows 95 OSR2-vel kiadott FAT32 formátumban csúcsosodtak ki.
A VFAT a FAT16 formátum kiterjesztése a hosszú (legfeljebb 255 karakteres) fájlnevek támogatásával. Mindkét fájlrendszert ugyanaz a segédprogram, az mkfs.fat
kezeli. Az mkfs.vfat
ennek egy alias változata.
A FAT fájlrendszernek jelentős hátrányai vannak, amelyek korlátozzák a nagy lemezeken való használatát. A FAT16 például legfeljebb 4 GB-os köteteket és legfeljebb 2 GB-os fájlméretet támogat. A FAT32 a kötetméretet 2 PB-ra, a maximális fájlméretet pedig 4 GB-ra növeli. Emiatt a FAT fájlrendszereket manapság inkább a kis méretű (legfeljebb 2 GB-os) flash meghajtókon vagy memóriakártyákon, illetve a fejlettebb fájlrendszereket nem támogató elavult eszközökön és operációs rendszereken használják.
A FAT fájlrendszer létrehozásának legalapvetőbb parancsa az mkfs.fat TARGET
, ahol a TARGET
az a partíció, amelyen a fájlrendszert létre akarjuk hozni. Például: mkfs.fat /dev/sdc1
.
Más segédprogramokhoz hasonlóan az mkfs.fat
is számos parancssori opciót támogat. Az alábbiakban a legfontosabbak következnek. Az összes opció teljes listája és leírása a segédprogram manualjában olvasható, a man mkfs.fat
parancs segítségével.
-c
-
A fájlrendszer létrehozása előtt ellenőrzi a céleszközt, hogy vannak-e rossz blokkjai.
-C FILENAME BLOCK_COUNT
-
Létrehozza a
FILENAME
-ben megadott fájlt, majd létrehoz egy FAT fájlrendszert benne, gyakorlatilag létrehozva egy üres “lemezképet” (disk image), amely később egy eszközre írható egy olyan segédprogrammal, mint add
, vagy csatolható loopback eszközként. Ha ezt az opciót használjuk, az eszköz neve után meg kell adni a fájlrendszerben lévő blokkok számát (BLOCK_COUNT
). -F SIZE
-
A FAT (File Allocation Table) méretének kiválasztása 12, 16 vagy 32, azaz FAT12, FAT16 vagy FAT32 között. Ha nincs megadva, az
mkfs.fat
a fájlrendszer mérete alapján választja ki a megfelelő opciót. -n NAME
-
Beállítja a fájlrendszer kötetcímkéjét vagy nevét. Ez legfeljebb 11 karakter hosszú lehet, és alapértelmezés szerint név nélküli.
-v
-
Szöveges üzemmód. A szokásosnál sokkal több információt jelenít meg, ami hasznos a hibakereséshez.
Note
|
Az |
exFAT fájlrendszer létrehozása
Az exFAT a Microsoft által 2006-ban létrehozott fájlrendszer, amely a FAT32 egyik legfontosabb korlátját, a fájl- és lemezméretet kezeli. Az exFAT rendszeren a maximális fájlméret 16 exabájt (a FAT32 4 GB-járól növelve), a maximális lemezméret pedig 128 petabájt.
Mivel mindhárom nagy operációs rendszer (Windows, Linux és mac OS) jól támogatja, jó választás ott, ahol interoperabilitásra van szükség, például nagy kapacitású flash meghajtókon, memóriakártyákon és külső lemezeken. Valójában ez az SD Association által meghatározott alapértelmezett fájlrendszer a 32 GB-nál nagyobb SDXC memóriakártyákhoz.
Az exFAT fájlrendszerek létrehozására szolgáló alapértelmezett segédprogram az mkfs.exfat
, amely az mkexfatfs
linkje. A legalapvetőbb parancs az mkfs.exfat TARGET
, ahol a TARGET
az a partíció, amelyen a fájlrendszert létre akarjuk hozni. Például: mkfs.exfat /dev/sdb2
.
A leckében tárgyalt többi segédprogrammal ellentétben az mkfs.exfat
nagyon kevés parancssori opcióval rendelkezik. Ezek a következők:
-i VOL_ID
-
A kötet azonosítóját a
VOL_ID
paraméterben megadott értékre állítja. Ez egy 32 bites hexadecimális szám. Ha nincs megadva, akkor az aktuális időn alapuló azonosító kerül beállításra. -n NAME
-
A kötet címkéjének vagy nevének beállítása. Ez legfeljebb 15 karakter lehet, és az alapértelmezés szerint nincs neve.
-p SECTOR
-
Megadja a lemez első partíciójának első szektorát. Ez egy opcionális érték, és az alapértelmezés szerint nulla.
-s SECTORS
-
Meghatározza a fizikai szektorok számát kiosztási klaszterenként. Ennek kettő hatványának kell lennie, például 1, 2, 4, 8, stb.
A Btrfs fájlrendszer megismerése
A Btrfs (hivatalosan B-Tree Filesystem, kiejtése: “Butter FS”, “Better FS” vagy akár “Butterfuss”) egy olyan fájlrendszer, amelyet 2007 óta fejleszt az Oracle Corporation és más vállalatok, többek között a Fujitsu, a Red Hat, az Intel és a SUSE, kifejezetten Linuxhoz.
A Btrfs-nek számos olyan tulajdonsága van, amely vonzóvá teszi a modern rendszerekben, ahol gyakori a hatalmas mennyiségű tárolóhely. Ezek közé tartozik a több eszköz támogatása (beleértve a csíkozást (striping), tükrözést (mirroring) és csíkozás+tükrözést, mint egy RAID beállításban), az átlátható tömörítés, az SSD optimalizálás, inkrementális mentések, pillanatképek, online töredezettségmentesítés (defragmentálás), offline ellenőrzések, alkötegek támogatása (kvótákkal), deduplikáció és még sok más.
Mivel ez egy copy-on-write fájlrendszer, nagyon ellenálló az összeomlásokkal szemben. Ráadásul a Btrfs egyszerűen használható, és sok Linux disztribúció jól támogatja. Néhányan közülük, mint például a SUSE, alapértelmezett fájlrendszerként használják.
Note
|
Egy hagyományos fájlrendszeren, amikor egy fájl egy részét felül szeretnénk írni, az új adat közvetlenül a régi adat fölé kerül, amelyet felcserél. Egy copy-on-write fájlrendszerben az új adatot a lemezen lévő szabad helyre írjuk, majd a fájl eredeti metaadatait frissítjük, hogy az új adatokra hivatkozzanak, és csak ezután szabadítjuk fel a régi adatokat, mivel már nincs rájuk szükség. Ez csökkenti az adatvesztés esélyét egy összeomlás esetén, mivel a régi adatok csak akkor kerülnek törlésre, ha a fájlrendszer teljesen biztos benne, hogy már nincs rájuk szükség, és az új adatok a helyükön vannak. |
Btrfs fájlrendszer létrehozása
Az mkfs.btrfs
segédprogramot a Btrfs fájlrendszer létrehozására használjuk. A parancs opciók nélküli használata egy Btrfs fájlrendszert hoz létre egy adott eszközön, a következőképpen:
# mkfs.btrfs /dev/sdb1
Tip
|
Ha nincs meg az |
A -L
segítségével megadhatunk egy címkét (vagy nevet) a fájlrendszernek. A Btrfs címkék legfeljebb 256 karakteresek lehetnek, kivéve az újsorokat:
# mkfs.btrfs /dev/sdb1 -L "New Disk"
Tip
|
Zárjuk a címkét idézőjelek közé (mint fentebb), ha szóközöket tartalmaz. |
Figyeljük meg a Btrfs sajátos tulajdonságát: az mkfs.btrfs
parancsnak több eszközt is átadhatunk. Ha egynél több eszközt adunk meg, akkor a fájlrendszer az összes eszközre kiterjed, ami hasonló egy RAID vagy LVM beállításhoz. A metaadatok lemeztömbön belüli elosztásának módját az -m
paraméterrel adhatjuk meg. Az érvényes paraméterek a következők: raid0
, raid1
, raid5
, raid6
, raid10
, single
és dup
.
Például a /dev/sdb1
és /dev/sdc1
fájlrendszer létrehozásához, a két partíciót egyetlen nagy partícióvá fűzve, használjuk a következőt:
# mkfs.btrfs -d single -m single /dev/sdb /dev/sdc
Warning
|
A több partíciót átfogó fájlrendszerek, mint a fentiek, elsőre előnyösnek tűnhetnek, de adatbiztonsági szempontból nem jó ötlet, mivel a tömb egyetlen lemezének meghibásodása biztos adatvesztést jelent. A kockázat annál nagyobb, minél több lemezt használunk, mivel több lehetséges hibapont is van. |
Sobvolumek kezelése
Az subvolumek (alkötetek) olyanok, mint a fájlrendszerek a fájlrendszereken belül. Gondoljunk rájuk úgy, mint egy mappára, amely külön fájlrendszerként csatolható (és kezelhető). Az alkötetek megkönnyítik a szervezést és a rendszeradminisztrációt, mivel mindegyikükhöz külön kvóták vagy pillanatkép-szabályok tartozhatnak.
Note
|
A subvolumek nem partíciók. A partíció egy rögzített helyet jelöl ki a meghajtón. Ez a későbbiekben problémákhoz vezethet, például ahhoz, hogy az egyik partíció kifogy a helyéből, miközben egy másiknak még bőven van helye. Nem így van ez a subvolumekkel, mivel ezek “megosztják” a gyökérfájlrendszerük szabad helyét, és szükség szerint növekednek. |
Tegyük fel, hogy van egy Btrfs fájlrendszerünk, amelyet az /mnt/disk
lemezre csatoltunk fel, és szeretnénk létrehozni egy subvolumet benne a biztonsági mentések tárolására. Nevezzük ezt BKP
-nek:
# btrfs subvolume create /mnt/disk/BKP
Ezután felsoroljuk az /mnt/disk
fájlrendszer tartalmát. Látni fogjuk, hogy van egy új mappánk, amely a subvolumeről kapta a nevét.
$ ls -lh /mnt/disk/ total 0 drwxr-xr-x 1 root root 0 jul 13 17:35 BKP drwxrwxr-x 1 carol carol 988 jul 13 17:30 Images
Note
|
Igen, a subvolumekhez ugyanúgy hozzá lehet férni, mint bármely más mappához. |
A következő paranccsal ellenőrizhetjük, hogy a subvolume aktív-e:
# btrfs subvolume show /mnt/disk/BKP/ Name: BKP UUID: e90a1afe-69fa-da4f-9764-3384f66fa32e Parent UUID: - Received UUID: - Creation time: 2019-07-13 17:35:40 -0300 Subvolume ID: 260 Generation: 23 Gen at creation: 22 Parent ID: 5 Top level ID: 5 Flags: - Snapshot(s):
Az alkötetet a /mnt/BKP
lemezre csatolhatjuk a -t btrfs -o subvol=NAME
paraméter mount
parancsnak történő átadásával:
# mount -t btrfs -o subvol=BKP /dev/sdb1 /mnt/bkp
Note
|
A |
Munka a pillanatfelvételekkel
A pillanatfelvételek (snapshot) ugyanolyanok, mint a subvolumek, de előre feltöltődnek annak a kötetnek a tartalmával, amelyről a pillanatfelvétel készült.
Létrehozásakor a pillanatfelvétel és az eredeti kötet tartalma pontosan megegyezik. De ettől az időponttól kezdve eltérnek egymástól. Az eredeti kötetben végrehajtott változtatások (például hozzáadott, átnevezett vagy törölt fájlok) nem fognak tükröződni a pillanatfelvételen, és fordítva.
Ne feledjük, hogy a pillanatfelvétel nem duplikálja a fájlokat, és kezdetben szinte semmilyen lemezterületet nem foglal. Egyszerűen csak megkettőzi a fájlrendszer fáját, miközben az eredeti adatokra mutat.
A pillanatkép létrehozására használt parancs ugyanaz, mint a subvolumek létrehozására, csak a btrfs subvolume
után a snapshot
paramétert kell hozzáadni. Az alábbi parancs a /mnt/disk
-re csatolt Btrfs fájlrendszer pillanatképét hozza létre a /mnt/disk/snap
-ban:
# btrfs subvolume snapshot /mnt/disk /mnt/disk/snap
Most képzeljük el, hogy az /mnt/disk
-ben az alábbi tartalmak vannak:
$ ls -lh total 2,8M -rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png -rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg -rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg -rw-rw-r-- 1 carol carol 467K jul 2 11:48 LG-G8S-ThinQ-Mirror-White.jpg -rw-rw-r-- 1 carol carol 654K jul 2 11:39 LG-G8S-ThinQ-Range.jpg -rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg -rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg drwx------ 1 carol carol 366 jul 13 17:56 snap -rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg -rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png
Figyeljük meg a pillanatfelvételt tartalmazó snap mappát! Most távolítsunk el néhány fájlt, és ellenőrizzük a mappa tartalmát:
$ rm LG-G8S-ThinQ-* $ ls -lh total 1,7M -rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png -rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg -rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg -rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg -rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg drwx------ 1 carol carol 366 jul 13 17:56 snap -rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg -rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png
Ha azonban megnézzük a snap mappán belül, a törölt fájlok még mindig ott vannak és szükség esetén visszaállíthatók.
$ ls -lh snap/ total 2,8M -rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png -rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg -rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg -rw-rw-r-- 1 carol carol 467K jul 2 11:48 LG-G8S-ThinQ-Mirror-White.jpg -rw-rw-r-- 1 carol carol 654K jul 2 11:39 LG-G8S-ThinQ-Range.jpg -rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg -rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg -rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg -rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png
Lehetőség van csak olvasható pillanatfelvételek létrehozására is. Ezek pontosan úgy működnek, mint az írhatók, azzal a különbséggel, hogy a tartalmuk nem változtatható meg, azok időben “befagyasztva” vannak. Csak adjuk hozzá a pillanatfelvétel létrehozásakor az -r
paramétert:
# btrfs subvolume snapshot -r /mnt/disk /mnt/disk/snap
Néhány szó a tömörítésről
A Btrfs támogatja az átlátható fájltömörítést, három különböző algoritmus áll a felhasználó rendelkezésére. Ez automatikusan, fájlonként történik, amennyiben a fájlrendszer a -o compress
opcióval van csatlakoztatva. Az algoritmusok elég okosak ahhoz, hogy felismerjék a tömöríthetetlen fájlokat, és nem próbálják meg tömöríteni őket, így takarékoskodva a rendszer erőforrásainak felhasználásával. Így egyetlen mappában lehetnek tömörített és tömörítetlen fájlok együtt. Az alapértelmezett tömörítési algoritmus a ZLIB, de elérhető az LZO (gyorsabb, rosszabb tömörítési arány) vagy a ZSTD (gyorsabb, mint a ZLIB, hasonló tömörítés), többféle tömörítési szinttel (lsd. a mount opciókról szóló fejezetet).
Partíciók menedzselése a GNU Parted segítségével
A GNU Parted egy nagyon hatékony partíciószerkesztő (partition editor, innen ered a neve), amely partíciók létrehozására, törlésére, áthelyezésére, méretének módosítására, mentésére és másolására használható. GPT és MBR lemezekkel egyaránt képes dolgozni, és szinte minden lemezkezelési igényt lefed.
Számos grafikus front-end létezik, amelyek megkönnyítik a parted
-del való munkát, mint például a GParted a GNOME-alapú asztali környezetekhez és a KDE Partition Manager a KDE asztali számítógépekhez. Azonban érdemes megtanulni a parted
parancssori használatát, mivel szerver környezetben soha nem számíthatunk arra, hogy grafikus asztali környezet áll rendelkezésre.
Warning
|
Az |
A legegyszerűbben úgy kezdhetjük el használni a parted-et, hogy beírjuk a parted DEVICE
parancsot, ahol a DEVICE
a kezelni kívánt eszköz (parted /dev/sdb
). A program elindít egy interaktív parancssori felületet, mint az fdisk
és gdisk
, a (parted)
prompttal, ahol parancsokat írhatunk be.
# parted /dev/sdb GNU Parted 3.2 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
Warning
|
Óvatosan! Ha nem adunk meg eszközt, a |
Lemezek kiválasztása
Ha a parancssorban megadottól eltérő lemezre szeretnénk váltani, használhatjuk a select
parancsot, amelyet az eszköz neve követ:
(parted) select /dev/sdb Using /dev/sdb
Információk megszerzése
A print
paranccsal több információt kaphatunk egy adott partícióról vagy akár a rendszerhez csatlakoztatott összes blokkeszközről (lemezről).
Ha információt szeretnénk kapni az aktuálisan kiválasztott partícióról, csak írjuk be azt, hogy print
:
(parted) print Model: ATA CT120BX500SSD1 (scsi) Disk /dev/sda: 120GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 2097kB 116GB 116GB primary ext4 2 116GB 120GB 4295MB primary linux-swap(v1)
A rendszerhez csatlakoztatott összes blokkeszköz listáját a print devices
paranccsal kaphatjuk meg:
(parted) print devices /dev/sdb (1999MB) /dev/sda (120GB) /dev/sdc (320GB) /dev/mapper/cryptswap (4294MB)
Ha egyszerre szeretnénk információt kapni az összes csatlakoztatott eszközről, használhatjuk a print all
parancsot. Ha azt szeretnénk tudni, hogy mennyi szabad hely van az egyes eszközökön, akkor a print free
parancs segít:
(parted) print free Model: ATA CT120BX500SSD1 (scsi) Disk /dev/sda: 120GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 32.3kB 2097kB 2065kB Free Space 1 2097kB 116GB 116GB primary ext4 116GB 116GB 512B Free Space 2 116GB 120GB 4295MB primary linux-swap(v1) 120GB 120GB 2098kB Free Space
Partíciós tábla létrehozása üres lemezen
Ha partíciós táblát szeretnénk létrehozni egy üres lemezen, használjuk az mklabel
parancsot, majd a használni kívánt partíciós tábla típusát.
Számos támogatott partíciós táblatípus létezik, de a főbb típusok, amelyeket ismerni kell, az msdos
, amelyet itt az MBR partíciós táblára használunk, és az gpt
, amely a GPT partíciós táblára utal. MBR partíciós tábla létrehozásához írjuk be a következőt:
(parted) mklabel msdos
GPT partíciós tábla létrehozásához a parancs pedig:
(parted) mklabel gpt
Partíció létrehozása
Partíció létrehozásához az mkpart
parancsot kell használni, az mkpart PARTTYPE FSTYPE START END
szintaxissal, ahol:
PARTTYPE
-
A partíció típusa, amely lehet
primary
,logical
vagyextended
MBR partíciós tábla használata esetén. FSTYPE
-
Megadja, hogy melyik fájlrendszert használja a partíció. Vegyük figyelembe, hogy a
parted
nem hozza létre a fájlrendszert. Csak beállít egy flaget a partícióra, ami megmondja az operációs rendszernek, hogy milyen adatokat várjon tőle. START
-
Megadja az eszköz pontos pontját, ahol a partíció kezdődik. A pont megadásához különböző mértékegységeket is használhatunk. A
2s
a lemez második szektorára utalhat, míg az1m
a lemez első megabájtjának kezdetére. Más gyakori egységek aB
(bájt) és a%
(a lemez százalékos aránya). END
-
Megadja a partíció végét. Vegyük figyelembe, hogy ez nem a partíció mérete, hanem a lemez azon pontja, ahol a partíció véget ér. Ha például a
100m
értéket adjuk meg, a partíció 100 MB-tal a lemez kezdete után ér véget. Ugyanazokat az egységeket használhatjuk, mint aSTART
paraméterben.
Tehát, a parancs:
(parted) mkpart primary ext4 1m 100m
Létrehoz egy ext4
típusú elsődleges partíciót, amely a lemez első megabájtjánál kezdődik és a 100. megabájt után ér véget.
Partíció eltávolítása
Egy partíció eltávolításához használjuk az rm
parancsot, majd a partíció számát, amelyet a print
paranccsal tudunk megjeleníteni. Tehát az rm 2
a második partíciót távolítja el az aktuálisan kiválasztott lemezen.
Partíciók helyreállítása
A parted
helyre tud állítani törölt partíciókat. Képzeljük el az alábbi partíció-struktúrát:
Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 primary 3 200MB 300MB 99.6MB ext4 primary
Véletlenül eltávolítottuk a 2. partíciót az rm 2
használatával. Visszaállításához használhatjuk a rescue
parancsot a rescue START END
szintaxissal, ahol a START
a partíció kezdetének hozzávetőleges helye, a END
pedig a partíció végének hozzávetőleges helye.
A parted
átvizsgálja a lemezt a partíciók után kutatva, és felajánlja, hogy a megtalált partíciókat visszaállítja. A fenti példában a 2
partíció 99,6 MB-nál kezdődött és 200 MB-nál végződött. A partíció helyreállításához tehát a következő parancsot használhatjuk:
(parted) rescue 90m 210m Information: A ext4 primary partition was found at 99.6MB -> 200MB. Do you want to add it to the partition table? Yes/No/Cancel? y
Ez helyreállítja a partíciót és annak tartalmát. Vegyük figyelembe, hogy a rescue
csak olyan partíciókat tud helyreállítani, amelyekre fájlrendszer van telepítve. Az üres partíciókat nem ismeri fel.
ext2/3/4 partíciók átméretezése
A parted
a partíciók méretének megváltoztatására is használható, hogy nagyobbá vagy kisebbé tegyük őket. Van azonban néhány megkötés:
-
A partíció átméretezése során a partíciót nem szabad használni és le kell csatolni.
-
Elég szabad helyre van szükség a partíció után ahhoz, hogy a kívánt méretre növelhessük azt.
A parancs a resizepart
, amelyet a partíció száma és a partíció vége követ. Például, ha a következő partíciós táblával rendelkezünk:
Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 300MB 99.6MB ext4 primary
Ha az resizepart
segítségével próbálnánk megnövelni az 1
partíciót, hibaüzenetet kapnánk, mivel az új méret esetén az 1
partíció átfedésben lenne a 2
partícióval. A 3
partíció azonban átméretezhető, mivel van szabad hely utána, amit a print free
paranccsal ellenőrizhetünk:
(parted) print free Model: Kingston DataTraveler 2.0 (scsi) Disk /dev/sdb: 1999MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 17.4kB 1049kB 1031kB Free Space 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 300MB 99.6MB ext4 primary 300MB 1999MB 1699MB Free Space
Tehát az alábbi parancsot használhatjuk a partíció 3-ról 350 MB-re történő növeléséhez:
(parted) resizepart 3 350m (parted) print Model: Kingston DataTraveler 2.0 (scsi) Disk /dev/sdb: 1999MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 350MB 150MB ext4 primary
Ne feledjük, hogy az új végpontot a lemez elejétől számítva adja meg. Tehát, mivel a 3
partíció 300 MB-nál ért véget, most 350 MB-nál kell véget érnie.
A partíció átméretezése azonban csak egy része a feladatnak. A rajta található fájlrendszert is át kell méretezni. Az ext2/3/4 fájlrendszerek esetében ez a resize2fs
paranccsal történik. A fenti példa esetében a 3. partíció még mindig a “régi” méretet mutatja, amikor felcsatoljuk:
$ df -h /dev/sdb3 Filesystem Size Used Avail Use% Mounted on /dev/sdb3 88M 1.6M 80M 2% /media/carol/part3
A méret módosításához a resize2fs DEVICE SIZE
parancs használható, ahol a DEVICE
az átméretezni kívánt partíciónak felel meg, a SIZE
pedig az új méret. Ha elhagyjuk a size paramétert, akkor a program a partíció teljes rendelkezésre álló helyét felhasználja. A méretváltoztatás előtt ajánlatos a partíciót leválasztani.
A fenti példában:
$ sudo resize2fs /dev/sdb3 resize2fs 1.44.6 (5-Mar-2019) Resizing the filesystem on /dev/sdb3 to 146212 (1k) blocks. The filesystem on /dev/sdb3 is now 146212 (1k) blocks long. $ df -h /dev/sdb3 Filesystem Size Used Avail Use% Mounted on /dev/sdb3 135M 1.6M 123M 2% /media/carol/part3
Egy partíció zsugorításához a folyamatot fordított sorrendben kell elvégezni. Először a fájlrendszert kell átméretezni az új, kisebb méretűre, majd magát a partíciót kell átméretezni a parted
segítségével.
Warning
|
A partíciók zsugorításakor figyeljünk oda! Ha elrontjuk a sorrendet, elveszítjük az adatokat! |
A példánkban:
# resize2fs /dev/sdb3 88m resize2fs 1.44.6 (5-Mar-2019) Resizing the filesystem on /dev/sdb3 to 90112 (1k) blocks. The filesystem on /dev/sdb3 is now 90112 (1k) blocks long. # parted /dev/sdb3 (parted) resizepart 3 300m Warning: Shrinking a partition can cause data loss, are you sure you want to continue? Yes/No? y (parted) print Model: Kingston DataTraveler 2.0 (scsi) Disk /dev/sdb: 1999MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 300MB 99.7MB ext4 primary
Tip
|
Az új méret megadása helyett használhatjuk a |
Swap partíciók létrehozása
Linuxon a rendszer szükség szerint memóriaoldalakat tud cserélni a RAM-ból a lemezre, és ezeket egy külön helyen tárolja, amelyet általában a lemezen külön partícióként, swap partíciónak vagy egyszerűen swapnak neveznek. Ennek a partíciónak meghatározott típusúnak kell lennie, és egy megfelelő segédprogrammal (mkswap
) kell beállítani, mielőtt használni lehetne.
A swap partíció létrehozásához az fdisk
vagy gdisk
használata esetén úgy kell eljárnunk, mintha egy hagyományos partíciót hoznánk létre, ahogyan azt már korábban megtettük. Az egyetlen különbség az, hogy a partíció típusát Linux swap-ra kell változtatni.
-
Az
fdisk
esetén használjuk at
parancsot! Válasszuk ki a használni kívánt partíciót, és változtassuk meg a típusát82
-re! Írjuk a változtatásokat a lemezre, és lépjünk ki aw
paranccsal! -
A
gdisk
-nél a partíció típusának megváltoztatására szolgáló parancs szintént
, de a kód8200
. Írjuk a változtatásokat a lemezre, és lépjünk ki aw
paranccsal!
A parted
használata esetén a partíciót swap partícióként kell azonosítani a létrehozás során, ehhez csak a linux-swap
fájlrendszer típust kell használnunk. Például egy 500 MB-os swap partíció létrehozásához a következő parancsot kell kiadni, a lemezen 300 MB-ról indulva:
(parted) mkpart primary linux-swap 301m 800m
Miután a partíciót létrehoztuk és megfelelően azonosítottuk, csak használjuk az mkswap
parancsot, majd a használni kívánt partíciót reprezentáló eszközt, például:
# mkswap /dev/sda2
Ha engedélyezni szeretnénk a swapot ezen a partíción, használjuk a swapon
parancsot, amelyet az eszköz neve követ:
# swapon /dev/sda2
Hasonlóképpen, a swapoff
, amelyet az eszköz neve követ, letiltja a swapot az adott eszközön.
A Linux támogatja a swap fájlok használatát is a partíciók helyett. Csak hozzunk létre egy üres, a kívánt méretű fájlt a dd
segítségével, majd használjuk az mkswap
és a swapon
parancsokat, és ezt a fájlt használjuk célként.
A következő parancsok létrehoznak egy 1 GB-os, nullákkal teli myswap
nevű fájlt az aktuális mappában, majd beállítják és engedélyezik, mint swap fájlt.
Swap fájl létrehozása:
$ dd if=/dev/zero of=myswap bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 7.49254 s, 143 MB/s
if=
a bemeneti (input) fájl, a fájlba írandó adatok forrása. Ebben az esetben ez a /dev/zero
eszköz, amely annyi NULL
karaktert ad, amennyit kérünk. of=
a kimeneti fájl, a létrehozandó fájl. bs=
az adatblokkok mérete, itt megabájtban van megadva, és count=
a kimenetre írandó blokkok száma. 1024 darab, egyenként 1 MB-os blokk 1 GB-nak felel meg.
# mkswap myswap Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=49c53bc4-c4b1-4a8b-a613-8f42cb275b2b # swapon myswap
A fenti parancsok használatával ez a swap-fájl csak az aktuális rendszermunkamenet alatt lesz használható. Ha a gép újraindul, a fájl továbbra is elérhető lesz, de nem töltődik be automatikusan. Ezt automatizálhatjuk az új swap fájl hozzáadásával az /etc/fstab
állományhoz, amiről egy későbbi leckében lesz szó.
Tip
|
Mind az |
Gyakorló feladatok
-
Milyen particionálási sémát kell használni egy 3 TB-os merevlemez három 1 GB-os partícióra történő particionálásához? Miért?
-
Hogyan tudjuk meg a
gdisk
segítségével, hogy mennyi szabad hely van a lemezen? -
Mi lenne a parancs egy ext3 fájlrendszer létrehozására, amely előtte ellenőrzi a rossz blokkokat,
MyDisk
címkével és egy véletlenszerű UUID-vel, a/dev/sdc1
eszközön? -
A
parted
használatával milyen paranccsal hozhatunk létre egy 300 MB-os ext4 partíciót, 500 MB-ról indulva a lemezen? -
Képzeljük el, hogy van 2 partíciónk, az egyik a
/dev/sda1
, a másik a/dev/sda2
lemezen, mindkettő 20 GB méretű. Hogyan használhatjuk őket egyetlen Btrfs fájlrendszeren úgy, hogy az egyik partíció tartalma automatikusan tükrözve legyen a másikra, mint egy RAID1 beállításnál? Mekkora lesz a fájlrendszer?
Gondolkodtató feladatok
-
Tételezzük fel, hogy van egy 2 GB-os lemezünk MBR partíciós táblával és az alábbi layouttal:
Disk /dev/sdb: 1.9 GiB, 1998631936 bytes, 3903578 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x31a83a48 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 1050623 1048576 512M 83 Linux /dev/sdb3 2099200 3147775 1048576 512M 83 Linux
Létre tudunk hozni egy 600 MB-os partíciót rajta? Miért?
-
A
/dev/sdc
lemezen van egy 1 GB-os első partíció, amely körülbelül 256 MB fájlt tartalmaz. Aparted
segítségével hogyan lehet ezt úgy összezsugorítani, hogy éppen elég hely legyen a fájloknak? -
Képzeljük el, hogy van egy lemezünk a
/dev/sdb
címen, és szeretnénk létrehozni egy 1 GB-os swap partíciót a lemez elején. Tehát aparted
segítségével létrehozzuk a partíciót azmkpart primary linux-swap 0 1024M
paranccsal. Ezután aswapon /dev/sdb1
-vel engedélyezzük a swapot ezen a partíción, de a következő hibaüzenetet kapjuk:swapon: /dev/sdb1: read swap header failed
Mi volt a baj?
-
A lecke során kipróbáltunk néhány parancsot a
parted
programban, de véletlenül töröltük a 3. partíciót a merevlemezen. Tudjuk, hogy ez egy 250 MB-os UEFI partíció és egy 4 GB-os swap partíció után következett, és 10 GB-os volt. Melyik paranccsal tudjuk helyreállítani? -
Képzeljük el, hogy van egy 4 GB-os kihasználatlan partíció a
/dev/sda3
lemezen. Azfdisk
használatával milyen műveletsorozatot kellene végrehajtanunk, hogy aktív swap partícióvá alakítsuk?
Összefoglalás
Ebben a leckében megtanultuk:
-
Hogyan hozzunk létre egy MBR partíciós táblát egy lemezen az
fdisk
segítségével, és hogyan használjuk azt partíciók létrehozására és törlésére. -
Hogyan hozzunk létre MBR partíciós táblát egy lemezen az
gdisk
segítségével, és hogyan használjuk partíciók létrehozására és törlésére. -
Hogyan hozzunk létre ext2, ext3, ext4, XFS, VFAT és exFAT partíciókat.
-
Hogyan használjuk a
parted
-et partíciók létrehozására, törlésére és helyreállítására MBR és GPT lemezeken. -
Hogyan használjuk az ext2, ext3, ext4 és Brts partíciók átméretezését.
-
Hogyan hozzunk létre, állítsunk be és aktiváljunk swap partíciókat és swap fájlokat.
A leckében az alábbi parancsokról volt szó:
-
fdisk
-
gdisk
-
mkfs.ext2
,mkfs.ext3
,mkfs.ext4
,mkfs.xfs
,mkfs.vfat
ésmkfs.exfat
-
parted
-
btrfs
-
mkswap
-
swapon
ésswapoff
Válaszok a gyakorló feladatokra
-
Milyen particionálási sémát kell használni egy 3 TB-os merevlemez három 1 GB-os partícióra történő particionálásához? Miért?
GPT-t, mivel az MBR csak 2 TB méretű lemezeket támogat.
-
Hogyan tudjuk meg a
gdisk
segítségével, hogy mennyi szabad hely van a lemezen?Használjuk a
p
-t (print). A teljes szabad terület a partíciós tábla előtti utolsó információs sorban jelenik meg. -
Mi lenne a parancs egy ext3 fájlrendszer létrehozására, amely előtte ellenőrzi a rossz blokkokat,
MyDisk
címkével és egy véletlenszerű UUID-vel, a/dev/sdc1
eszközön?A parancs:
mkfs.ext3 -c -L MyDisk -U random /dev/sdc1
. Használhatjuk azmke2fs -t ext3
-t alternatívaként azmkfs.ext3
helyett. -
A
parted
használatával milyen paranccsal hozhatunk létre egy 300 MB-os ext4 partíciót, 500 MB-ról indulva a lemezen?Használjuk az
mkpart primary ext4 500m 800m
parancsot. Ne feledjük, hogy nekünk kell létrehozni a fájlrendszert azmkfs.ext4
segítségével, mivel a parted ezt nem teszi meg! -
Képzeljük el, hogy van 2 partíciónk, az egyik a
/dev/sda1
, a másik a/dev/sda2
lemezen, mindkettő 20 GB méretű. Hogyan használhatjuk őket egyetlen Btrfs fájlrendszeren úgy, hogy az egyik partíció tartalma automatikusan tükrözve legyen a másikra, mint egy RAID1 beállításnál? Mekkora lesz a fájlrendszer?Használjuk az
mkfs.btrfs /dev/sda1 /dev/sdb1 -m raid1
parancsot. A fájlrendszer 20 GB méretű lesz, mivel az egyik partíció a másik tükrözöttjeként fog viselkedni.
Válaszok a gondolkodtató feladatokra
-
Tételezzük fel, hogy van egy 2 GB-os lemezünk MBR partíciós táblával és az alábbi layouttal:
Disk /dev/sdb: 1.9 GiB, 1998631936 bytes, 3903578 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x31a83a48 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 1050623 1048576 512M 83 Linux /dev/sdb3 2099200 3147775 1048576 512M 83 Linux
Létre tudunk hozni egy 600 MB-os partíciót rajta? Miért?
Nem, mivel nincs elég összefüggő terület. Az első jel, hogy valami “nem működik”, az eszközök listája: van
/dev/sdb1
és/dev/sdb3
, de nincs/dev/sdb2
. Tehát valami hiányzik.Ezután meg kell néznünk, hogy hol végződik a partíció és hol kezdődik a másik. Az első partíció a
1050623
szektornál ér véget, a 2-es partíció pedig2099200
-nál kezdődik. Ez egy 1048577 szektoros “gap”. Szektoronként 512 bájttal ez 536.871.424 bájt. Ha elosztjuk 1024-el, 524.288 kilobájtot kapunk. Újra osztjuk 1024-el és… 512 MB. Ez a “gap” mérete.Ha a lemez 2 GB, akkor a 3. partíció után legfeljebb további 512 MB-ot kapunk. Még akkor is, ha összesen kb. 1 GB van felosztatlanul, a legnagyobb összefüggő blokk 512 MB. Tehát nincs hely egy 600 MB-os partíciónak.
-
A
/dev/sdc
lemezen van egy 1 GB-os első partíció, amely körülbelül 256 MB fájlt tartalmaz. Aparted
segítségével hogyan lehet ezt úgy összezsugorítani, hogy éppen elég hely legyen a fájloknak?Ez egy több részből álló művelet. Először is a
resize2fs
segítségével zsugorítani kell a fájlrendszert. Az új méret közvetlen megadása helyett használhatjuk az-M
paramétert, így az “elég nagy” lesz. Így:resize2fs -M /dev/sdc1
.Ezután magát a partíciót méretezzük át a
resizepart
segítségével. Mivel ez az első partíció, feltételezhetjük, hogy nulláról indul és 241 MB-nál ér véget. A parancs tehát a következő:resizepart 1 241M
. -
Képzeljük el, hogy van egy lemezünk a
/dev/sdb
címen, és szeretnénk létrehozni egy 1 GB-os swap partíciót a lemez elején. Tehát aparted
segítségével létrehozzuk a partíciót azmkpart primary linux-swap 0 1024M
paranccsal. Ezután aswapon /dev/sdb1
-vel engedélyezzük a swapot ezen a partíción, de a következő hibaüzenetet kapjuk:swapon: /dev/sdb1: read swap header failed
Mi volt a baj?
A jó típusú partíciót hoztuk létre (
linux-swap
), de ne feledjük, hogy azmkpart
nem hoz létre fájlrendszert. Elfelejtettük beállítani a partíciót swap-tárhelyként azmkswap
programmal, mielőtt használtuk volna. -
A lecke során kipróbáltunk néhány parancsot a
parted
programban, de véletlenül töröltük a 3. partíciót a merevlemezen. Tudjuk, hogy ez egy 250 MB-os UEFI partíció és egy 4 GB-os swap partíció után következett, és 10 GB-os volt. Melyik paranccsal tudjuk helyreállítani?Nem kell pánikba esni, minden szükséges információ megvan a partíció helyreállításához, csak használjuk a
rescue
parancsot és számoljunk! Előtte 250 MB + 4.096 MB (4*1024) volt, tehát a kezdőpontnak 4346 MB körül kell lennie. Plusz 10,240 MB (10*1024) méret, a végére 14,586 MB-nak kellene lennie. Tehát arescue 4346m 14586m
-nek működnie kell. Lehet, hogy a lemez geometriájától függően egy kis “lazaságot” kell adnunk a mentéshez, egy kicsit korán kezdve és egy kicsit későn befejezve. -
Képzeljük el, hogy van egy 4 GB-os kihasználatlan partíció a
/dev/sda3
lemezen. Azfdisk
használatával milyen műveletsorozatot kellene végrehajtanunk, hogy aktív swap partícióvá alakítsuk?Először változtassuk a partíció típusát az alábbira: “Linux Swap” (82), mentsük a módosításokat és lépjünk ki. Ezután használjuk az
mkswap
-ot, hogy beállítsuk a partíciót swap területnek. Ezután aswapon
segítségével engedélyezzük.