Ablakok.  Vírusok.  Jegyzetfüzetek.  Internet.  hivatal.  Segédprogramok.  Drivers

btrfs(néha ejtsd: butter fs) egy új ingyenes fájlrendszer, amelyet az Oracle támogatásával fejlesztenek. GPL licenc alatt terjesztve. Annak ellenére, hogy fejlesztése még korántsem fejeződött be, 2009. január 9-én a fájlrendszert integrálták a Linux kernel, és elérhető a Debian Squueze-ben.

Bár a Btrfs benne volt a 2.6.29-es kernelben, a fejlesztők kijelentik, hogy "a 2.6.31-es kerneltől kezdve a továbbiakban csak a lemezcsere formátumát tervezzük kompatibilissé tenni." A fejlesztők továbbra is szeretnék fejleszteni a felhasználói/felügyeleti eszközöket, hogy felhasználóbarátabbak legyenek. Megszerzéséért további információ a Btrfs-ről a szakaszban található linken.

Az Ext2/3/4-et Btrf-vé lehet alakítani (de fordítva nem).

Állapot

A Debian Squeeze és az újabb verziók támogatják a Btrfs-t.

GYIK

Melyik csomag tartalmaz segédprogramokat a btrfs-hez?

btrfs-tools (DebianSqueeze és újabb verziókban)

Lásd még: Btrfs wiki GYIK

Példaparancsok a btrfs használatához

Teremtés fájlrendszer:

mkfs.btrfs

Kötetek, részkötetek, pillanatképek kezelése; a fájlrendszer integritásának ellenőrzése:

btrfsctl

Btrfs fájlrendszerek keresése:

btrfsctl -a btrfsctl -A /dev/sda2

Pillanatképek és részkötetek készítése:

mount -t btrfs -o subvol=. /dev/sda2 /mnt btrfsctl -s new_subvol_name /mnt btrfsctl -s snapshot_of_default /mnt/default btrfsctl -s snapshot_of_new_subvol /mnt/new_subvol_name btrfsctsnaps/shot_snaps new_subvol ls /mnt

A fájlrendszer kiterjedtségfáinak ellenőrzése:

btrfsck

Kimeneti metaadatok szöveges formában:

debug-tree debug-tree /dev/sda2 >& big_output_file

Btrfs fájlrendszerek megjelenítése a merevlemezen:

btrfs-show /dev/sda*

Töredezettségmentesítés (alapértelmezés szerint nem szükséges):

# btrfs fájlrendszer töredezettségmentesítése /mnt vagy # btrfs fájlrendszer töredezettségmentesítése /mnt/file.iso

Ext3 fájlrendszer konvertálása btrfs-re

Az ext3 fájlrendszer btrfs-vé alakítható, és új fájlrendszerként dolgozhat vele tovább. Sőt, az eredeti ext3 fájlrendszer állapota később lesz elérhető.

# Mindig futtassa először az fsck-t %# fsck.ext3 -f /dev/xxx # Convert from Ext3->Btrfs %# btrfs-convert /dev/xxx # Csatlakoztassa a kapott Btrfs fájlrendszert %# mount -t btrfs /dev/xxx /btrfs # Csatlakoztassa az ext3 pillanatképet %# mount -t btrfs -o subvol=ext2_saved /dev/xxx /ext2_saved # Loopback csatolja a képfájlt %# mount -t ext3 -o loop,ro /ext2_saved/image /ext3

Az /ext3 könyvtár most az eredeti fájlrendszer állapotát mutatja.

A leszerelés ben történik fordított sorrendben:

%# umount /ext3 %# umount /ext2_saved %# umount /btrfs

Visszatérhet egy ext3 fájlrendszerre, és elveszíti a módosításokat:

%# btrfs-convert -r /dev/xxx

Vagy maradhat a btrfs-nél, és törölheti a mentett ext3 fájlrendszer képét:

%# rm /ext2_saved/image

Jegyzet: az új fájlrendszer néha nagyon nagy metaadat-mérettel rendelkezik az átalakítás után.

Metaadat méretének megtekintése:

# btrfs fájlrendszer df /mnt/data1tb/

Normalizálja méretüket:

btrfs fi egyensúly /mnt/btrfs

Bővebben: Konverzió ext3-ról (angol) és ext3fs konvertálása btrfs-re (orosz)

A fájlrendszer és a partíciók átméretezése

A btrfs esetében elérhető a fájlrendszer online (menet közbeni) átméretezése. Először fel kell szerelni kívánt szakaszt:

# mount -t btrfs /dev/xxx /mnt

2 GB hozzáadása:

# btrfs fájlrendszer átméretezése +2G /mnt vagy # btrfsctl -r +2g /mnt

Leméretezés 4 GB-tal:

# btrfs fájlrendszer átméretezése -4g /mnt vagy # btrfsctl -r -4g /mnt

Állítsa be a méretet 20 GB-os fájlrendszerre:

# btrfsctl -r 20g /mnt vagy # btrfs fájlrendszer átméretezése 20g /mnt

Az összes szabad hely felhasználása:

# btrfs fájlrendszer átméretezése max /mnt vagy # btrfsctl -r max /mnt

A fenti parancsok csak a fájlrendszerre érvényesek. A partíció átméretezéséhez más segédprogramokat kell használnia, például az fdisk-et. Vegyünk egy példát a partíció 4 GB-os csökkentésére. Szerelje fel és csökkentse a partíciót:

# mount -t btrfs /dev/xxx /mnt # btrfsctl -r -4g /mnt

Most válassza le a partíciót, és használja az fdisk parancsot:

# umount /mnt fdisk /dev/xxx # ahol a dev/xxx van HDD azzal a szakasszal, amelyre szükségünk van

Az új fájlrendszerre való átállás mindig nehéz feladat. Már a régi, bevált fájlrendszerben bízunk. Lehet, hogy még korlátai is vannak a funkcionalitásban és a teljesítményben, de soha nem hagyott cserben minket. Az új fájlrendszerek nagyon nagyszámú funkciókat, de felmerül a kérdés, hogy megbízhat-e bennük?

Az egyik ilyen fájlrendszer a Btrfs. Ez egy viszonylag új fájlrendszer, amely 2007-ben jelent meg, és az Oracle fejlesztette ki. Az újdonságok igen széles skáláját kínálja, ezért nagy érdeklődésre tart számot a felhasználók körében, de a neten még mindig olyan pletykák keringenek, hogy ez a fájlrendszer még nem alkalmas állandó használatra. Ebben a cikkben megpróbáljuk kitalálni, hogy a Btrfs milyen lehetőségeket ad nekünk, és azt is, hogy használható-e már.

Mint mondtam, a Btrfs-t az Oracle fejlesztette ki 2007-ben. A névnek nincs egyetlen dekódolása, egyesek szerint B-tree FS-t jelent, mások Better Fs-t. Csakúgy, mint a többi fájlrendszerben, az összes adatot a lemezen tárolják meghatározott címeken. Ezeket a címeket a metaadatok tárolják. És itt kezdődnek a különbségek. Minden metaadat b-faként van rendezve. Ez nagyobb teljesítményt biztosít a fájlrendszerrel való munka során, és lehetővé teszi korlátlan számú fájl hozzáadását.

De még ez sem minden. Fájl felülírásakor az adatok nem íródnak felül, hanem csak a módosított rész másolódik az új helyre, majd a metaadatok egyszerűen frissülnek. Ez lehetővé teszi olyan pillanatképek készítését a fájlrendszerről, amelyek nem foglalnak helyet a lemezen, amíg sok módosítást nem hajtanak végre. Ha a régi blokkra már nincs szükség, mert nem része egyetlen pillanatképnek sem, akkor a rendszer automatikusan törli.

A Btrfs felépítéséből adódóan rengeteg lehetőséget rejt magában, például a mai igen nagy adathordozókat is képes kezelni. A fájlrendszer maximális mérete 16 exabájt. Mindez a lemezterület megfelelő felhasználásának köszönhetően lehetséges. Más fájlrendszerek a teljes merevlemezt használják a végétől a végéig a szerkezetük rögzítéséhez.

A Btrfs másképp csinálja a dolgokat. Minden lemez, méretétől függetlenül, 1 GB-os adattömbökre és 256 MB-os metaadatokra van felosztva. Ezeket a blokkokat ezután csoportokba állítják össze, amelyek mindegyikén tárolható különböző eszközök, az ilyen blokkok száma egy csoportban attól függhet RAID szint a csoport számára. A kötetkezelő már be van építve a fájlrendszerbe, így nincs szükség további szoftver használatára.

Az adatvédelem és a tömörítés fájlrendszer szinten is támogatott, így itt sincs szükség további programokra. A btrfs fájlrendszer támogatja az adattükrözést is több adathordozón. Íme a btrfs egyéb jellemzői, amelyeket meg lehet említeni:

  • Fájlrendszer-pillanatképek támogatása, csak olvasható vagy írható;
  • Az adatok és metaadatok ellenőrző összegei a crc32 algoritmus használatával. Ily módon a blokk esetleges sérülése nagyon gyorsan megállapítható;
  • Tömörítés Zlib és Lzo segítségével;
  • Az SSD-vel való munkára optimalizált fájlrendszer automatikusan felismeri az ssd-t, és másképp kezd el viselkedni;
  • Háttérfolyamat hibaészleléshez és -javításhoz, valamint valós idejű töredezettség- és duplikáláshoz;
  • Támogatja az átalakítást ext4-ről és ext3-ról és fordítva.

Mindez nagyon jó, de lehet már használni ezt a fájlrendszert? Próbáljunk meg ezzel foglalkozni.

A btrfs használatra kész?

Még mindig sok tévhit kering a Btrfs körül. Sokuk valódi problémákból ered, amelyek a fájlrendszer fejlesztésének kezdetén voltak. De az emberek, akik ezt az információt nézik, nem a dátumot nézik. Igen, a Btrfs valóban instabil és instabil volt. Sok adatvesztési probléma volt, és sok felhasználó írt róla, de ez még 2010-ben volt.

A fájlrendszer legfontosabb része a lemezen tárolt formátum. De a Btrfs fájlrendszer formátuma már rögzített, még 2012-ben történt, és már nem változik, hacsak nem feltétlenül szükséges. Ez önmagában elegendő a btrfs stabilitásának felismeréséhez.

De miért tartják sokan a Btrfs-t instabilnak? Ennek több oka is van. Először is, ez a felhasználók félelme az új technológiáktól. Ez nem csak a Linuxban, hanem a Microsoftban is, az NTFS-re való átállással és az Apple-ben is így volt. De van itt némi paradoxon, az XFS fájlrendszer 20 éves stabil fejlődésen ment keresztül, de a legstabilabb fájlrendszer az ext4, amit 2006-ban az ext3 forkjából fejlesztettek ki. Valójában egy évvel idősebb, mint a Btrfs.

A második ok az aktív fejlesztés alatt áll, bár az adattárolási formátum lefagyott, a fő kódbázist még mindig aktívan fejlesztik, és még mindig bőven van lehetőség a teljesítmény javítására és az új funkciókra.

De már sok megerősítést kapott, hogy a fájlrendszer készen áll. Ezt a fájlrendszert a Facebook szerverein használják, ahol a cég érzékeny adatait tárolja. És ez önmagában is fontos tényező. Olyan cégek dolgoznak a fájlrendszer fejlesztésén, mint a Facebook, SuSE, RedHat, Oracle, Intel és mások. Ezt a fájlrendszert alapértelmezés szerint használja a SUSE Linux Enterprise a 12. kiadás óta. Mindezek a tényezők együttesen azt bizonyítják, hogy a fájlrendszer készen áll a használatra. A btrfs funkcionalitását és szolgáltatásait tekintve pedig már használható.

Btrfs használat

Hogy miért érdemes a Btrfs-t használni, és megéri-e egyáltalán, rájöttem. Most egy kis gyakorlatot szeretnék bemutatni, hogy ki tudja értékelni ezt a fájlrendszert működés közben. Mondok példákat Ubuntu alapján. Először telepítse a fájlrendszer-kezelő eszközöket:

sudo apt install btrfs-tools

Btrfs fájlrendszer létrehozása

Először létre kell hoznia egy fájlrendszert. Tegyük fel, hogy van két merevlemezünk /dev/sdb és /dev/sdc, ezeken szeretnénk egyetlen fájlrendszert létrehozni adattükrözéssel. Ehhez csak tegye a következőket:

sudo mkfs.btrfs /dev/sdb /dev/sdc

Az alapértelmezés a RAID0 lesz az adatoknál (nincs redundancia, és a RAID1 a metaadatoknál (egyetlen lemezre duplikálva). Egyetlen lemez használatakor a metaadatok is duplikálódnak, ha ezt a viselkedést ki szeretnéd kapcsolni, használhatod az -m singlet választási lehetőség:

sudo mkfs.btrfs -m egyetlen /dev/sdb

De ezzel növeli az adatvesztés kockázatát, mert ha a metaadatok elvesznek, az adatok is elvesznek.

Az újonnan létrehozott fájlrendszerrel kapcsolatos információkat a következő paranccsal tekintheti meg:

sudo btrfs fájlrendszer show /dev/sdb

Vagy az összes csatlakoztatott fájlrendszerről:

sudo btrfs fájlrendszer show

btrfs mount

A csatlakoztatáshoz használja a szokásos parancsot:

sudo mount /dev/sdb /mnt

Bármelyik meghajtót felszerelheti, ugyanaz lesz a hatása. Az /etc/fstab sora így fog kinézni:

/dev/sdb /mnt btrfs alapértékei 0 1

Most megnézzük az elfoglalt lemezterületre vonatkozó információkat:

sudo btrfs fájlrendszer df /mnt

Tömörítés btrfs-ben

A tömörítés engedélyezéséhez csak adja hozzá a tömörítési opciót felszereléskor. Átadhatja neki az lzo vagy zlib algoritmust:

sudo mount -o compress=lzo /dev/sdb /mnt
$ sudo mount -o compress=zlib /dev/sdb /mnt

A btrfs visszaállítása

A sérült Btrfs helyreállításához használja a helyreállítási csatlakoztatási lehetőséget:

sudo mount -o recovery /dev/sdb /mnt

Méretváltozás

A kötetet valós időben átméretezheti a resize paranccsal:

sudo btrfs fájlrendszer átméretezése -2g /mnt

Csökkentse a méretet 2 gigabájttal. Ezután növelje meg 1 gigabájttal:

sudo btrfs fájlrendszer átméretezése +1g /mnt

Alkötetek létrehozása

A Btrfs segítségével logikai partíciókat, alköteteket hozhat létre a fő partíción belül. A fő partíció belsejébe szerelhetők:

sudo btrfs alkötet létrehozása /mnt/sv1
$ sudo btrfs alkötet létrehozása /mnt/sv2
$ sudo btrfs alkötet lista /mnt

Alkötetek felszerelése

Az utolsó paranccsal kapott azonosítóval csatolhatja az alkötetet:

sudo umount /dev/sdb

sudo mount -o subvolid=258 /dev/sdb /mnt

Vagy használhatja a nevet:

sudo mount -o subvol=sv1 /dev/sdb /mnt

Alkötetek eltávolítása

Először csatolja a btrfs gyökérkönyvtárat az alkötet helyett:

sudo umount /mnt

sudo mount /dev/sdb /mnt/

Alkötet eltávolításához használhatja a beillesztési útvonalat, például:

sudo btrfs alkötet törlése /mnt/sv1/

Pillanatfelvételek készítése

A Btrfs fájlrendszer lehetővé teszi a változások pillanatképeinek készítését. Ehhez a snapshot parancsot használják. Például hozzunk létre egy fájlt, majd készítsünk pillanatképet:

érintse meg a /mnt/sv1/test1 /mnt/sv1/test2 elemet

Hozzon létre egy pillanatképet:

sudo btrfs alkötet pillanatkép /mnt/sv1 /mnt/sv1_snapshot

Egyikünk sem mentes a hibáktól. Néha a görbe kezek szindróma nagyon szomorú következményekkel jár. Néha nagyon nehéz ellenállni, és nem végezni "tudományellenes" kísérleteket a rendszerrel, vagy nem futtatni egy ellenőrizetlen forrásból letöltött szkriptet / alkalmazást. És itt különféle eszközök az alkalmazások elszigetelt környezetben történő futtatásához és a kiterjesztett fájlrendszer-képességek jönnek a segítségre.

Bevezetés

*nix rendszerek mindig is viszonylag ellenállóak voltak a rosszul megírt alkalmazásokkal (persze, feltéve, hogy nem rootként futottak). Néha azonban felmerül a vágy, hogy kísérletezzen a rendszerrel - tréfálkozzak a konfigurációkkal, amelyek közül néhány létfontosságú lehet, gyanús szkriptet futtat, telepít egy nem megbízható forrásból származó programot... Ellenkező esetben a paranoia egyszerűen legyőzi, és azt akarom, hogy hogy minél több akadályt építsen fel a potenciális rosszindulatú programok elleni védelem érdekében. A cikk bemutat néhány módszert a nem kényszerített hibák következményeinek elkerülésére, ha vissza kell térni egy korábban létrehozott visszatérési ponthoz (Btrfs pillanatképek), lefuttat egy gyanús programot korlátozott környezetben, és szórakoztatja a paranoiát (Arkose és chroot).

chroot

A Chroot már régóta ismert. Óriási előnye van más eszközökkel szemben – mindenhol működik, még nagyon régi disztribúciókon is. Mindezek az újszerű homokozók nem mások, mint a továbbfejlesztés. De vannak hátrányai is. Pl. a hálózatot nem lehet korlátozni, a root némi erőfeszítéssel ki tud lépni belőle, és ami a legfontosabb, elég nehéz beállítani. Ennek ellenére bizonyos célokra, például csomagok forrásból történő telepítésére, ideális.

Legalább három módja van a chroot környezet létrehozásának:

  1. Ön meghatározza az elindított program működéséhez szükséges összes alkalmazást és könyvtárat. Ez a legrugalmasabb, de egyben a legzavaróbb is.
  2. A chroot környezet dinamikusan alakul ki. Valamikor volt az Isolate projekt, ami ezt csinálta, de mára ismeretlen okokból a feledés homályába merült.
  3. Az alaprendszer telepítése a megadott könyvtárban és rootolás - leírom.

grub és btrfs

Valószínűleg a Btrfs partícióról történő rendszerindításkor a Grub esküdni fog, hogy a ritka fájlok nem engedélyezettek, és megkéri, hogy nyomja meg bármelyik billentyűt. Ha meg szeretné akadályozni, hogy ez az üzenet megjelenjen, nyissa meg a kedvencében szöveg szerkesztő az /etc/grub.d/00.header fájlt, és kommentálja a következő sort:

Ha [ -n "\$(have_grubenv)" ]; akkor ha [ -z "\$(boot_once)" ]; majd save_env recordfail; fi; fi

Tulajdonképpen a recordfail változóra azért van szükség, hogy megakadályozzuk a ciklikus újraindítást, amelyhez indításkor fel van kapcsolva, majd sikeres betöltés esetén 0-ra állítjuk. Bár nem kívánatos megjegyzést tenni az eljárásért felelős kódhoz, Szerintem egy asztali rendszeren teljesen meg lehet csinálni nélküle.

Ognelis a homokozóban – ezt mondja a cím

Először telepítsük a debootstrap csomagot, amelyet csak erre a célra használunk.

$ sudo apt-get install debootstrap

Ezután létrehozunk egy könyvtárat, amelyben a chroot található, és telepítjük benne a kvantális alaprendszert. Általában bárhol létrehozható, de hagyományos helye a /var/chroot. Mivel a legtöbb alábbi parancs megköveteli root jogosultságok, érdemes a szuperfelhasználói fiókra váltani:

$ sudo su - # mkdir /var/chroot && cd /var/chroot # debootstrap quantal ./quantal-chr1 http://mirror.yandex.ru/ubuntu

Vessünk egy pillantást az utolsó parancsra. A Quantal Ubuntu kiadást egy külön quantal-chr1 könyvtárba telepíti (soha nem tudhatod, hirtelen szükséged van egy másik chroot-ra) a legközelebbi tükörből. A telepítés befejezése után ehhez a részfához le kell képeznie a procfs, sysf fájlrendszereket és (ha van ilyen) a /dev könyvtárat. Abban az esetben, ha a chroot csak szöveges alkalmazásokhoz lesz használva az újraindításig, a következő parancsok elegendőek:

# mount --bind /proc /var/chroot/quantal-chr1/proc # mount --bind /sys /var/chroot/quantal-chr1/sys # mount --bind /dev /var/chroot/quantal-chr1/ dev

Ha azt szeretné, hogy ez a részfa működjön újraindítás után, adja hozzá a megfelelő sorokat az /etc/fstab fájlhoz. Hát egyesek munkájáért grafikai alkalmazások a /tmp és a /var/run/dbus könyvtárat is meg kell jeleníteni. Ezt követően már beírhatja a következő parancsot, ami tulajdonképpen a chrootot teszi:

# chroot /var/chroot/quantal-chr1/

És máris be vagy zárva. Annak érdekében, hogy ne tévessze össze a chrootot egy valódi rendszerrel, javaslom a shell prompt megváltoztatását. Például telepítsük és futtassuk a Skype-ot a chrootban. Ehhez telepítenie kell a schroot csomagot a gazdagépen, amely megkönnyíti a programok futtatását chroot környezetben:


Telepítés az alaprendszerre a chroot a debootstrap használatával # apt-get install schroot

Ezután hozzáadunk egy bejegyzést az /etc/schroot/schroot.conf fájlhoz. Az én esetemben a következőket tettem hozzá:

/etc/schroot/schroot.conf description=Kvantális Skype könyvtár=/var/chroot/quantal-chr1 priority=3 user=rom groups=rom root-groups=root,rom

Továbbítjuk a /dev, /proc, /sys, /tmp és /var/run/dbus fájlokat – lásd fent, hogyan kell ezt megtenni. Adjon hozzá egy skype-felhasználót és csoportot a chroot-hoz - kívánatos, hogy az uid és a gid megegyezzenek a valós rendszer fő felhasználójának (esetemben rom) uid / gid-jével, amelyhez a következő parancsokat írjuk be:

# schroot -c quantal-skype -u root # addgroup --gid 1000 skype # adduser --disabled-password --force --uid 1000 --gid 1000 skype

Ezután a frissen letöltött Skype-ot - ismét a chroot-ba - tesszük, és kielégítjük a függőségeit:

# dpkg --force-all -i skype-ubuntu-precise_4.1.0.20-1_i386.deb # apt-get -f install # kilépés

A fő rendszeren engedélyezzük a kapcsolatot az X szerverrel a localhostról, és normál felhasználóként írjuk be a chrootot:

$ xhost +localhost $ cd / && schroot -c quantal-skype -u rom /bin/bash

Állítsa be a DISPLAY változót (amit meg kell néznie a fő rendszerben), és indítsa el a Skype-ot:

$ export DISPLAY=":0.0" $ skype --dbpath=/home/skype/.Skype &

A Skype sikeresen telepítve és elindítva chroot környezetben.

Lehetne írni egy szkriptet az indítás megkönnyítésére, de ezt megteheti saját maga.


Arkose segítségével

Az Arkose hasonló módon működik, mint a Windows homokozói, például a Sandboxie. A gyakorlatban ez egy kényelmes csomagolóanyag az LXC konténerekhez. De mint tudod, a kényelem és a rugalmasság néha összeegyeztethetetlen - finomhangolás létrehozott konténereket nehéz. Az előnyök közül megjegyzek egy intuitív kezelőfelületet (ez akkor van, ha grafikus felhasználói felületet használsz - azonban parancs sor szintén nagyon egyszerű), de a mínuszok közül - alapértelmezés szerint elég sok szabad helyet igényel a merevlemezen, és van néhány lehetséges módjai kitérő; de ha az Arkose-t kiegészítő burkolóként használja rosszindulatú programok (böngésző) bevezetésének lehetséges módjaihoz, vagy akár csak kísérletezéshez érdekes alkalmazás, nem fog fájni.

seccomp és seccomp-bpf

A Seccomp egy kevéssé ismert mechanizmus, amelyet a 2.6.12-es kernelben vezettek be, amely lehetővé teszi egy folyamat számára, hogy egyirányú átmenetet hajtson végre "biztonságos" állapotba, ahol csak négy rendszerhívás érhető el számára - exit(), sigreturn(), read() és write(), és az utolsó kettő csak már elérhető nyissa meg a fájlokat. Ha a folyamat megpróbál bármilyen más syscallt hívni, akkor az azonnal leáll.

Nyilvánvalóan ez a megoldás nem túl rugalmas. Ezzel kapcsolatban megjelent a seccomp-bpf a 3.5-ös kernelben, amely lehetővé teszi, hogy a BPF-szabályok segítségével finomhangoljuk, mely rendszerhívások (és argumentumaik) engedélyezettek és melyek nem. A Seccomp-bpf-et használják Google Chrome, Chrome OS, és visszaportálva Ubuntu 12.04-re.

Az Arkose használata előtt telepíteni kell. Az eljárás szabványos:

$ sudo apt-get install arkose-gui

Mind a grafikus felhasználói felület (arkose-gui), mind a parancssori segédprogram (arkose) telepítve lesz. A grafikus felület annyira egyszerű, hogy nem látom értelmét leírni, jobb, ha azonnal áttérünk a gyakorlásra.


Kézi alkotás
csak olvasható pillanatkép-
ta a btrfs-ben

A parancssori opciók a következőket veszik figyelembe:

  • -n (nincs,közvetlen,szűrt) - képezi le a hálózatot a sandboxhoz. A none és a közvetlen opciók magától értetődőek, a szűrt minden egyes sandboxhoz saját felületet hoz létre. A gyakorlatban jobb a none vagy a közvetlen használata, mivel a szűrt beállítása hosszú ideig tart.
  • -d (nincs,rendszer,munkamenet,mindkettő) - hozzáférés a D-Bus buszokhoz a homokozóból.
  • -s size - beállítja a tárhely méretét megabájtban. Az alapértelmezett 2000 MB ext4 esetén, vagy a memória fele tmpfs esetén. A homokozóban futó program leállása után a tároló megsemmisül.
  • -t - tárolási fájlrendszer típusa. Az alapértelmezett az ext4.
  • --root directory – Megadja azt a könyvtárat, amely gyökérként van leképezve a sandboxhoz.
  • --root-type (cow,bind) - hogyan kell pontosan megjeleníteni a gyökért. Ha tehenet használ, akkor a homokozó bezárása utáni módosítások elvesznek, és ha köt, akkor mentésre kerülnek.
  • --base-path – a sandbox tárolási helyét adja meg. Az alapértelmezett érték ~/.arkose.
  • --bind könyvtár és --cow könyvtár - egy könyvtárat jelenít meg tehén módban vagy közvetlenül. Természetesen az egyik vagy másik opció használata a gyökérleképezés típusától függ - nincs értelme a --cow opciót használni egy olyan könyvtárban, amely már másolás-írás alatt van.
  • -h - valódi saját könyvtár használata. Hasonló a --bind $HOME-hoz.
  • -p - lehetővé teszi a PulseAudio használatát.

Példaként indítsuk el a Firefoxot:

$ sudo arkose -n direct -p firefox

Ez a parancs elindítja a Firefoxot web-hozzáféréssel és PulseAudio-val. Mivel minden újonnan létrehozott tárolónak alapértelmezés szerint saját kezdőkönyvtára van, a firelis profil is új lesz, telepített kiegészítők nélkül, ha van ilyen.

"De várj! Miért sudo? - merülhet fel egy ésszerű kérdés. Az a tény, hogy néhány előkészítő művelet csak a gyökér alól érhető el. Azonban sietek megnyugtatni - az elindított program az aktuális felhasználó jogaival fog működni.


Felhasználó hozzáadása a Skype chroot futtatásához

Röviden a BTRFS-ről

Előfordul, hogy a frissítések telepítése után a rendszer összeomlik. Itt hasznosak lennének a Windows rendszer-visszaállítás összetevőjéhez hasonló eszközök. Büszkén mondhatom, hogy megvannak! És az egyik ilyen eszköz a Btrfs. Az Oracle új fájlrendszerének előnyei közül érdemes megjegyezni a következőket:

  • Másolás írásra. Ezt a technológiát pillanatképek készítésére használják – azonnali pillanatképek a rendszerállapotról. Pillanatkép létrehozásakor az FS-illesztőprogram bemásolja a metaadatokat, és elkezdi figyelni a tényleges felvételt. Ha megtalálta, akkor az eredeti adatblokkok kerülnek a pillanatképbe, és újak kerülnek a helyükre.
  • Az inódok dinamikus kiosztása. A régi generációs FS-től eltérően a Btrfs nem korlátozza a fájlok számát.
  • Fájltömörítés.
  • Fájlrendszer tárolásának lehetősége több fizikai adathordozón. Valójában ez ugyanaz a RAID, csak egy magasabb szint. A cikk írásakor a RAID 0, RAID 1 és RAID 10 támogatott, míg a RAID 5 támogatása a fejlesztés korai szakaszában van.

Pillanatképek létrehozása és törlése

Új generációs fájlrendszeren végzett műveletek végrehajtásához, például pillanatképek létrehozásához, kötet töredezettségmentesítéséhez és sok máshoz a btrfs parancsot kell használni. A szintaxisa általában a következő:

btrfs<команда> <аргументы>

Milyen műveleteket lehet végrehajtani a Btrfs-en? Alább találhatók azok a parancsok, amelyeket érdekesnek találtam.

  • btrfs subvol create [<путь>/]<имя>- alkötetet hoz létre (lásd az oldalsávot). Ha nincs megadva elérési út, akkor az aktuális könyvtárban hozza létre.
  • btrfs subvol törlés<имя>- rendre törli az alkötetet.
  • btrfs subvol find-new<путь> <поколение>- a megadott elérési úton utoljára módosított fájlok listája, a megadott generációtól kezdve. Sajnos ez még nem lehetséges egyszerű módon megtudja egy adott fájl aktuális generációját, így ennek a parancsnak a használatát egy tamburával való tánc is kísérheti.
  • btrfs subvol pillanatkép [-r]<подтом> <путь к снапшоту>- a program fénypontja. Pillanatképet hoz létre a megadott részkötetről a megadott elérési úttal. Az -r opció letiltja a pillanatképekbe írást.
  • btrfs subvol lista<путь>- a megadott elérési úton lévő részkötetek és pillanatképek listáját jeleníti meg.
  • btrfs filesys df - területhasználat a megadott csatolási ponthoz.
  • btrfs filesys átméretezés [+/-]<новый размер> <путь>- igen, igen, a Btrfs képes "élő" rendszeren átméretezni, és nem csak növelni, hanem csökkenteni is! Az argumentumokkal szerintem minden többé-kevésbé egyértelmű, de a méret megadása mellett használhatod a max argumentumot, ami a fájlrendszert a lehető legnagyobb méretre bővíti.

A fennmaradó parancsok, bár érdekesek, csak annyiban kapcsolódnak a cikk témájához, és nem foglalkozunk velük. Tehát egy részkötet pillanatképének elkészítéséhez az aktuális dátummal, például a gyökérkönyvtárral, a következő parancsot írjuk be:

$ sudo btrfs subvol snap -r //snapshot-2013-01-16

$ sudo btrfs subvol del /snapshot-2013-01-16

Btrfs alkötet

A Btrfs alkötet kétféleképpen működhet: könyvtárként és VFS-objektumként – olyasvalami, ami felcsatolható. Például az Ubuntu telepítésekor két alkötet jön létre - @ és @home. Az első tartalmaz rendszerfájlokat, a második a felhasználói adatok. Ez hasonló a lemez particionálásához, csak ha korábban egy partíció általában csak egy VFS objektumot tartalmazhatott, akkor most egyszerre több objektum is lehet egy partíción, és ezek egymásba ágyazhatók.

Automatizálás

Nem látom sok értelmét a pillanatképek manuális létrehozásának – egyszerűen elfelejtheti ezt megtenni. Három automatizálási forgatókönyv jut eszembe:

  • írjon egy szkriptet, és tegye be az rc.local fájlba;
  • írj egy forgatókönyvet, és tedd cron-ba;
  • használja a btrfs autosnap parancsot.

Sajnos az Ubuntu 12.10-ben az utolsó módszer valamiért nem elérhető, így gyakorlatilag nincs választási lehetőség. Én személy szerint inkább cron szkriptet írtam, de először hozzunk létre egy alkötetet, amelyben a pillanatképeink lesznek tárolva. Miért? Legalábbis azért, hogy ne szennyezzék a gyökérmappát.

# mkdir /mnt/sda11 # mount /dev/sda11 /mnt/sda11 # btrfs subvol create /mnt/sda11/@snapshots # umount /mnt/sda11

Lássuk, mit csinálnak ezek a parancsok. Mivel az FS tényleges gyökere be Ebben a pillanatban elérhetetlen (ubuntuban a @ alkötet a root helyett), manuálisan kell felcsatolnunk. Az én esetemben a /dev/sda11-en van. A harmadik paranccsal létrehozzuk a @snapshots alkötetet – így ha nem csatoljuk fel vagy a valódi root-ot, akkor a tartalma elérhetetlen lesz. És most az igazi forgatókönyv:

Autosnap.sh #!/bin/bash set -e VOLUME=/dev/sda11 TMP_PATH=/tmp/snapshots MOUNT_OPTS=" [e-mail védett]" # Aktuális dátum és idő – a pillanatkép mappák elnevezéséhez szükséges NOW="$(dátum +%Y%m%d%H%M)" NOW_SEC="$(dátum +%s)" ha [ $# -ne 1 ] ; akkor # Ha a szkript argumentumok nélkül fut, állítsa be az alapértelmezett értéket egy napja OLDER_SEC="$(dátum --dátum "1 napja" +%s)" else # Ha van argumentumunk, akkor feltételezzük, hogy ez dátum bármilyen formátumban, amit a date parancs megért, minden következménnyel OLDER_SEC="$(date --date "$1" +%s)" fi # Vonja ki a kívánt dátumot az aktuális dátumból, és alakítsa át percekre OLDER=$ (($NOW_SEC-$ OLDER_SEC)) OLDER_MIN=$(($OLDER/60)) [ ! -d "$(TMP_PATH)/" ] && mkdir "$(TMP_PATH)/" [ -z "`grep "$( TMP_PATH)" /proc/ mounts`" ] && mount "$(VOLUME)" "$(TMP_PATH)/" -o "$(MOUNT_OPTS)" && ( # Mkdir csatlakoztatása "$(TMP_PATH)/$(NOW)/" # Pillanatképek létrehozása btrfs subvol snap / "$(TMP_PATH)/$(NOW)/rootsnap" > /dev/null 2>&1 btrfs subvol snap /home "$(TMP_PATH)/$(NOW)/homesnap" > /dev/ null 2>&1 ) && ( # A megadott dátumnál régebbi pillanatképeket tartalmazó mappák keresése a "$(TMP_PATH) keresésében" -mindepth 1 -maxdepth 1 -type d -cmin +"$OLDER_MIN" -print0 |xargs - 0`; tegye a btrfs subvol del "$(f)/rootsnap" > /dev/null 2>&1 && btrfs subvol del "$(f)/homesnap" > /dev/null 2>&1 && # parancsot, és törölje az ezeket tartalmazó pillanatképeket és mappákat rmdir "$f" kész ) umount -l "$(TMP_PATH)" && rmdir "$(TMP_PATH)"

Ezt a szkriptet el lehet helyezni oda, ahol kényelmes (én személy szerint jobban szeretem az ilyen dolgokat a /usr/local/bin könyvtárba tenni, de ez ízlés kérdése), és akár cronból, akár rc.local-ból futtatom. Alapértelmezés szerint a szkript elforgatja az egy napnál régebbi pillanatképeket, de a dátum parancs formátumában tetszőleges számot megadhat - ami a legfontosabb, ne felejtse el idézőjelbe tenni.

ISO kép használata

Annak érdekében, hogy ne húzza ki a lemezt a felvett ubunttal minden létfontosságú fájl megsérülésekor, lehetőség van a Grub menü ISO-képéből a boot elem hozzáadására, amit javaslok. Ehhez szükség lesz egy nem Btrfs partícióra (mert az Ubuntu ISO szabványos initramfs-je ismeretlen okokból nem akarja látni a képet, ha az a partíción található a leírt FS-sel) és közvetlen kezek. Adja hozzá a következő sorokat az /etc/grub.d/40_custom fájlhoz:

Menuentry "Ubuntu 12.10 i386 iso" ( insmod part_msdos insmod fat # Telepítse a gyökeret, ahonnan a root="hd0,msdos7" ISO-készletet kapjuk # A kép elérési útja a fenti gyökérkészlethez képest isofile=/ubuntu-12.10-desktop- i386.iso # Csatlakozás visszacsatolási eszközként közvetlenül a Grub loopback hurokba $isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt -- initrd (loop)/casper/initrd.lz )

és futtassa a parancsot a fő Grub konfiguráció frissítéséhez:

$ sudo frissítés grub

Mostantól még a rendszer súlyos károsodása esetén is – hacsak természetesen a rendszerbetöltő és a hozzá tartozó fájlok nem érintettek – mindig lehet indítani egy ISO lemezképről, és megváltoztatni a sérült fájlokat, vagy visszaállítani egy korábbi rendszerállapotra.


INFO

Ha chroot környezetben dolgozol rootként, akkor van lehetőség onnan menekülni. Az egyik módja az mknod() rendszerhívás használata, majd a valódi gyökér csatolása. A grsecurity patchset telepítése megoldja ezt a problémát.

A Btrfs parancsok szabványos és rövidített formájúak. Például a „btrfs subvolume snapshot” parancs „btrfs su sn”-ként írható.

Tehát tegyük fel, hogy ledobta a rendszert, és vissza kell állítania egy Btrfs pillanatképből. Ehhez indítsa el ezt az ISO képfájlt, csatolja azt a partíciót, amelyre a rendszert ledobta - pontosan azt a partíciót, nem az alkötetet! - és írja be a következő parancsokat (természetesen a pillanatképekhez és a partíciókhoz igazítva):

# cd /mnt/sda11 # mv @ @_badroot # mv @snapshots/201302011434/rootsnap @

Ugyanezt, ha szükséges, megtesszük a @home-tal és újraindítjuk. Ha minden jól ment, akkor eltávolíthatja a @_badroot:

$ sudo btrfs subvol del @_badroot

Következtetés

A *nix rendszereken számos módja van annak, hogy megvédje magát a rossz kísérletektől, vagy enyhítse azokat. Áttekintettem néhányat. Érdemes azonban megjegyezni, hogy mindezek a módszerek elsősorban a kísérletezőknek szólnak, akik szeretnek mélyebbre ásni a rendszerben. Nem alkalmasak rosszindulatú programok elfogására – elég könnyen észlelhetők, bár bizonyos szintű biztonságot nyújtanak.

Eredeti: BTRFS-pillanatképek létrehozása és használata – oktatóanyag
Szerző: Igor Ljubuncic
Megjelenés dátuma: 2012. február 25
Fordítás: A. Krivoshey
Az átadás időpontja: 2012. április

A BTRFS egy viszonylag új, a Sun ZFS-én alapuló fájlrendszer, amely a legtöbb innovációt hozta a Unix számára az elmúlt 25 évben, mielőtt az Oracle átvette volna. A BTRFS továbbra is instabilnak tekinthető, ezért nem alkalmas éles alkalmazásokhoz. Ennek a fájlrendszernek azonban számos hasznos funkciója van, amelyeket érdemes felfedezni. Az egyik ilyen pillanatképek készítése a rendszerről.
Hadd pontosítsam. A pillanatképek a rendszer állapotának azonnali pillanatképei. Bizonyos értelemben, ha másol egy fájlt és biztonsági másolatot készít, akkor pillanatképet készít róla a másolás időpontjában. Ezt bárhol és bármikor meg lehet tenni. Gondoljon egy olyan fájlrendszerre, amely ténylegesen képes kezelni a fájlok több példányát a struktúráján belül, és lehetővé teszi, hogy tetszés szerint használja azokat. Érdekesen hangzik, vizsgáljuk meg.

BTRFS bevezetés

Mielőtt mélyebbre ásnánk, szeretném röviden felvázolni ennek a fájlrendszernek a képességeit. A BTRFS-nek kezelnie kell a lemezekkel és fájlkezeléssel kapcsolatos összes rendszerműveletet, amely általában további segédprogramokat igényel. A BTRFS töredezettségmentesítést, terheléselosztást, zsugorítást, növekedést, üzem közbeni cserét, RAID-et, pillanatfelvételeket, tömörítést, klónozást és még sok mást kínál, mindezt a fájlrendszer-illesztőprogramba építve. Más fájlrendszerek esetén valószínűleg számos egyéb illesztőprogramra és felhasználói segédprogramra lesz szüksége az ilyen műveletek kezeléséhez, például fájlrendszer-töredezettség-mentesítőre, RAID- és LVM-illesztőprogramokra stb.
A beépített funkcionalitás teljesítményt és egyszerű használatot jelent. Jelenleg azonban a BTRFS még nem teljesen használható az instabilitás és a teljesítmény romlása miatt más fájlrendszerekhez, például az Ext4-hez képest. De óriási potenciál van benne, ezért nem lehet figyelmen kívül hagyni, hanem tanulmányozni kell.
Ebben az útmutatóban megmutatom, hogyan kezelheti a pillanatképeket. Ez egy rendkívül releváns funkció, amely lehetővé teszi a létrehozást biztonsági mentések fontos fájlokat, mielőtt bármilyen módosítást végezne rajtuk, majd szükség esetén állítsa vissza őket. Bizonyos értelemben olyan, mint a Windows rendszer-visszaállítás és egy fájlrendszer-szintű visszaállítási illesztőprogram. Ebben a cikkben egyébként a pillanatképek mellett néhányat is találhat hasznos információ a BTRFS fájlrendszerrel végzett mindennapi munkáról. A tesztelést Fedora 16 Verne rendszeren végeztük KDE asztali számítógéppel.

Hogyan kell kezelni a BTRFS-t

A gyökér fájlrendszerhez használhatja a BTRFS-t, kivéve a /boot fájlt, amelyet hagyományos naplózó fájlrendszerrel kell formázni. Az egyszerűség kedvéért ebben az útmutatóban egy külön /dev/sdb1 eszközzel fogunk dolgozni, amelyet BTRFS-ben formázott, és szükség esetén használunk. A gyakorlatban ez lehet /home vagy /data, vagy bármi.

Szóval mit fogunk csinálni?

Fogjuk a /dev/sdb1 fájlt, és felcsatoljuk. Ezután létrehozunk néhány alszakaszt. Tekintsük az alszakaszokat virtuális gyökeres fáknak, mivel mindegyik különálló, független fa adatstruktúra, még akkor is, ha az adatok megegyeznek.
Az alábbiakban az ehhez szükséges parancsok sorrendje látható. Ne félj, elmagyarázzuk, hogyan működnek.

$ btrfs alkötet létrehozás /mnt/data $ btrfs alkötet létrehozás /mnt/data/orig $ echo "A Dedoimedo l33t" > /mnt/data/orig/file $ btrfs alkötet pillanatkép /mnt/data/orig /mnt/data/backup

A /dev/sdb1 az /mnt fájlhoz van csatlakoztatva. Létrehozunk egy adat nevű alkulcsot. Belül egy másik alszakaszt hozunk létre orig néven. És már benne is létrejönnek a fájljaink. A felhasználó szemszögéből az alszekciók normál könyvtáraknak tűnnek. Más szóval, az adatok és a data/orig könyvtárak.
Ezután létrehozunk szöveges fájl eredetinek nevezett fájl, amely szöveget tartalmaz. Végül elkészítjük az orig alkulcs pillanatképét, és biztonsági másolatnak hívjuk. Most van egy azonos másolatunk az eredeti alszakaszból. Íme a bizonyíték:

Ezenkívül az ellenőrzéshez a parancsot használjuk btrfs alkötet lista az összes alszakasz megtekintéséhez:

$ btrfs alkötet lista

Vegye figyelembe, hogy minden alszakasznak saját azonosítószáma van. Mint hamarosan látni fogjuk, ez fontos.

Alapértelmezett nézet

Jelenleg az /mnt alapértelmezés szerint az eredeti és a biztonsági másolatot is megjeleníti (minden adatban). Meg tudjuk változtatni. Emlékszel, korábban említettem a virtuális gyökérfa struktúrákat? A BTRFS lehetővé teszi, hogy a virtuális gyökérkönyvtárat bármelyik alkulcsra módosítsa.
Így az alszakaszok és pillanatképek használata egyszerűen a különböző adathierarchiák közötti váltást jelenti. Nincs szükség fájlok törlésére, felülírására vagy bármi másra. Csak váltson át egy másik alszakaszra. Most meglátjuk, hogyan történik ez.
Csapat btrfs alkötet set-default ID ez minden, amire szükségünk van. Az alapértelmezett nézetet egy másik partícióra állítjuk, majd leválasztjuk az eszközt, és újra csatlakoztatjuk. Fontos!
Ha most olyan fájlrendszeren dolgozik, amelyet nem lehet leválasztani, mert használatban van (például /usr vagy /etc), akkor újra kell indítania a számítógépet, hogy a változtatások érvénybe lépjenek. Most egy újabb alszakasz jelenik meg az adott könyvtárfában. A felhasználó nem fogja észrevenni a különbséget, de a könyvtárak adatai megváltoznak.
Ahhoz, hogy valóban lássuk, hogyan működik ez, szerkesztjük a biztonsági másolatban lévő fájlt. Cserélje ki a Dedoimedo is l33t szöveget a Dedoimedo is NEM l33t szövegre.

$ echo "A Dedoimedo NEM l33t" > /mnt/data/backup/file

Oké, ismerjük az összes alszakasz azonosítóját. Ezért az azonosítót alapértelmezett nézetként fogjuk felcsatolni. Ez azt jelenti, hogy amint újracsatlakoztatja az /mnt fájlt, egy ilyen tartalmú fájlt fogunk látni itt.

$ btrfs alkötet set-default 257 /mnt $ umount /mnt $ mount /dev/sdb1 /mnt

Most tegyünk vissza mindent:

Ez annyiszor elvégezhető, ahányszor szükséges:

Fent változtattuk a nézetet 257 és 260 között, vagyis az orig és a backup között, ennek eredményeként a módosított fájl tartalmát láthattuk. Egyszerűen megmutattuk a felhasználónak a különböző alszakaszokat.
Ebből kifolyólag, ha az orig-ot és a backup-ot is látni szeretnénk az adatkönyvtárban, akkor vissza kell állítani a legfelső szintű alszekció alapértelmezett nézetét, vagyis az adatokat. Vegye figyelembe, hogy minden adat a /mnt könyvtárban jelenik meg, mivel azt választottuk beillesztési pontként. Ehelyett azonban bármilyen más könyvtárat használhat.

Következtetés

A pillanatfelvétel funkció a BTRFS-ben meglehetősen szépen van megvalósítva, és használata nem nehéz. Természetesen ügyelni kell arra, hogy a megfelelő adatfát használja, és ne keverje össze a dolgokat. De most már ismeri az alapvető BTRFS-parancsokat, és magabiztosabban tud cselekedni. A jövőben tesztelni fogjuk a Snappert, az openSUSE-tól elérhető BTRFS frontendet, amely lehetővé teszi ugyanazon funkcionalitás grafikus felhasználói felületen keresztüli megvalósítását azok számára, akik nem szeretik a parancssort.

Geekként még mindig megszoktam, hogy folyamatosan kísérletezem a rendszerrel: újraépítem, nem stabil RC kerneleket telepítek, beleértve a kísérleti frissítési ágakat is. Gyakran még azt is mondhatnám, hogy túl gyakran töröm meg a rendszert (személyes legjobb, 2 hét újratelepítés nélkül).

Mit jelent a szünet? Ha valami nagyon rosszul működik, például a LibreOffice és a Compiz, ami gyakran összeomlik és szeret lefagyni, akkor vagy megpróbálom újrakonfigurálni a rendszert, de ez elég hosszú és unalmas.

Pontosan arra, amire értek.

Ha valaki, hozzám hasonlóan, szeret kísérletezni a rendszerrel, és elege van abból, hogy minden alkalommal visszaállítsa, akkor itt van egy lehetőség, hogyan oldottam meg ezt a problémát magamnak. átmegyek a macska alatt.

Hogyan kell vagy normál kerékpár.

1. tétel: LiveCD

Utólag abból indulunk ki, hogy a lemez 2 partícióra van osztva: /boot formázott ext4-ben és / formázott btrfs-ben.
A Grub 2 a lemez MBR-ébe van írva.
Ennek megfelelően az első bekezdés:
A személyes szokásokból és megfontolásokból sokkal könnyebb visszaállítani a rendszert a grafikus felületről, mint gyönyörködni a fekete képernyőben, és néha internet-hozzáférés nélkül emlékezni és parancsokat előírni. Nem, szerintem nem gonosz a konzol, szeretem a konzolt, de mindenesetre a grafikus felületről kellemesebb.
Cselekedj egyet
Az ötlet nem új, bevallom valahol a Habrén megjelent, de a linket nem találtam, ezért elnézést kérek a publikáció forrásától.
Másolja a kívánt Live disztró képét a /boot mappába
sudo cp /media/timofey/boot/grub/ISO/Linux/Ubuntu/ubuntu-12.10-desktop-amd64.iso /boot/ubuntu-12.10-desktop-amd64.iso
A /boot átkerül egy külön partícióra, de nem azért, mert az jobb, hanem mert számomra ismeretlen okokból a grub 2 alól btrfs-re írt LiveCD-k nem töltődnek be.
Most javítjuk grub beállítások 2 alapértelmezés szerint, hogy a grub "a" frissítésekor ne veszítse el a képet.
sudo nano /etc/grub.d/40_custom

És illesszen be valami ilyesmit a megjegyzések után:
"Ubuntu 12.10 amd64" menüpont )/casper/initrd.lz )

Valójában a képben és a hasonlatban volt konfigurálva (hivatalos ubuntu wiki):
/Grub2/ISOBoot
Most "majdnem" a legfontosabb, hogy újra generáljuk a konfigurációt:

sudo update-grub

Ennyi, most újraindítás után a shift billentyűt nyomva tartva a főrendszer állapotától függetlenül elindíthatunk egy mini rendszert internettel és grafikus felülettel.

2. tétel: Képek

Szerintem aki már régóta ismeri a Linuxot, az legalább hallott a btrfs-ről, talán még azt is, hogy már kialakult a saját véleménye. Nál nél ubuntu telepítése egy btrfs-es partíción alapból nagyon okosan csinálják, az alpartíciós mechanizmust használják, és 2 alszakasz jön létre, ezek a @ és a home (amit a rendszer újratelepítésekor cserélek / és / home) helyesen, nem veszítjük el a konfigurációkat. De most nem erről van szó. Hogyan lehet használni ezt az aggodalmat a végfelhasználók számára? Nagyon egyszerű.

Egy kis háttér:
Eredetileg az volt a terv, hogy az rc.local-on keresztül hajtsam végre a szkriptet, de nem, majd a daily cron-on keresztül valósult meg, később legyőztem az rc.local-t és kikapcsoltam a snapshotokat a pokolba a cronban.

Szkript kódja:

#!/bin/bash #Ez a szkript az indításkor pillanatkép automatikus létrehozásához #1.2.9 verzió beállítva -e DATA="$(dátum +%g%m%d%k%M%S)" VOLUME=/dev/sda1 [ ! -d "/tmp/$DATA/" ] && sudo mkdir "/tmp/$DATA/" mount $VOLUME "/tmp/$DATA/" && ( [ ! -d "/tmp/$DATA/snapshots/" ] && sudo mkdir "/tmp/$DATA/snapshots/" mkdir "/tmp/$DATA/snapshots/$DATA/" && cd "/tmp/$DATA/" btrfs részkötet pillanatfelvétele ./@ ."/snapshots/$DATA /@_$(DATA)/" btrfs részkötet pillanatfelvétele ./@home ."/snapshots/$DATA/@home_$(DATA)/" [ ! -f ./snapshots/snapshots.log ] && érintse meg a ./snapshots/ snapshots.log chmod 777 ./snapshots/snapshots.log echo on_startup_$(dátum +%X_%x) >> ./snapshots/snapshots.log umount -l "/tmp/$DATA/" && sudo rmdir "/tmp/ $DATA/" )

Az /etc/btrfs_snapshot_onstartup címen található
Adja hozzá az /etc/rc.local fájlhoz, és adjon végrehajtási engedélyt mindkét fájlnak a sudo chmod +x "fájl elérési útja" segítségével
Előfordulhat, hogy a ./snapshots/snapshots.log fájl végrehajtási naplózása nem működik, ezért manuálisan kell létrehoznia root jogokkal. Az újraindítás után ő maga is megkapja a szükséges jogokat.

A rendszer pillanatképeinek állapotát bármikor megtekinthetjük a következő beírásával:
cat /var/log/snapshots.log

Minden pillanatkép hozzáadásra kerül a partícióhoz, ahol a rendszer a pillanatképek mappában található, ahol minden sikeres rendszerindításhoz létrejön egy mappa.
Egyesek azt mondhatják, hogy nem kifizetődő indításkor pillanatfelvételeket készíteni. Egyáltalán nem, indokolja, egy nap alatt egy csomó változtatást végrehajthatok a rendszeren és százszor újraindíthatom, és alternatív esetekben nem fogok tudni visszatérni a sikeres indítás (tényleges) pillanatába, de csak egy nappal ezelőtt.

Lehetőség a kézi indításra:
#!/bin/bash #Ez a szkript a pillanatkép automatikus létrehozásához #1.2.8-as verzió set -e DATA=$(dátum +%g%m%d%k%M%S) ############ ####################### [ ! -d /tmp/$DATA/ ] && sudo mkdir /tmp/$DATA/ sudo mount /dev/sda2 /tmp/$DATA/ && ( ################## ################################################ # [ ! -d /tmp/$DATA/snapshots/ ] && mkdir /tmp/$DATA/snapshots/ mkdir /tmp/$DATA/snapshots/$DATA/ cd /tmp/$DATA/ sudo btrfs alkötet pillanatkép ./@ . /snapshots/$DATA/@_$(DATA)/ sudo btrfs alkötet pillanatkép ./@home ./snapshots/$DATA/@home_$(DATA)/ ############## # ################################################ ## ### sudo chmod 777 ./snapshots/snapshots.log sudo echo this.hands_$(dátum +%X_%x) >> ./snapshots/snapshots.log sudo cat ./snapshots/snapshots.log sleep 1 sudo umount - l /tmp/$DATA/ && sudo rmdir /tmp/$DATA/ ################################ # ################################## sudo btrfs fájlrendszer df / #information about fs ) read exit 0

3. tétel: Helyreállítás

Erre próbálkoztak, megölték a rendszert, mit tegyenek?
Boot LiveCD-ről, mount rendszerpartíció, egy számunkra kényelmes mappába.
Ezután, ha szükséges, rejtse el vagy távolítsa el a szabványos @ és home alköteteket.
és pótolja a hiányzót a szükséges pillanatfelvétellel.
A legtöbb esetben elegendő a @ helyettesítése.
nazarpc
Emellett a pillanatképek nem csak a rendszer egy bizonyos állapotába való visszagurítást teszik lehetővé, hanem a szükséges fájl vagy konfiguráció kinyerését is onnan, ami szintén némi szabadságot ad az ismeretlen eredetű fájlok törlésekor.

4. tétel: Tisztítás

A pillanatképek nem foglalnak sok helyet, de idővel nagy mennyiségű szemét halmozódhat fel miattuk a lemezen. Itt van egy szkript a pillanatkép mappák automatikus megtisztításához. Ezzel eltávolítja az összes rendszerpillanatképet

#!/bin/bash #0.0.9 verzió beállítva -e DATA=$(dátum +%g%m%d%k%M%S) [ ! -d "/tmp/$DATA" ] && sudo mkdir "/tmp/$DATA" sudo mount /dev/sda1 "/tmp/$DATA" && ( cd "/tmp/$DATA/snapshots/" for i in * /* do sudo btrfs alkötet törlése "$i" megtörtént i in * do sudo rmdir -v "$i" visszhangtisztítás kész_$(dátum +%g%m%d%k%M%S) > "./snapshots .log" sudo cp "./snapshots.log" "/var/log/snapshots.log" sudo umount -l "/tmp/$DATA" && sudo rmdir "/tmp/$DATA" ) olvasási kilépés 0

Eredmény

Készítettünk egy viszonylag hibatűrő rendszert, amelyben lehetőségünk van a rendszer gyors helyreállítására meghibásodás után. Ugyanakkor minimális időt és erőfeszítést kell költeni egy védelmi rendszer kiépítésére.
Saját gondolataim ezzel kapcsolatban
Azt gondolom, hogy nagy informatikai struktúrákban egy ilyen megoldás nem valószínű, hogy hasznos, de kis otthoni felhasználásra ideálisnak kell lennie.

Jó lenne a tisztítási szkriptet is úgy befejezni, hogy az összes, például hetesnél régebbi pillanatképet kitisztítsa, és nem az összes elérhetőt, őszintén megvallva, megpróbáltam, de nekem nem jött be. Aztán alapból be lehetne hajtani pl cron-ba is, hogy naponta egyszer lefusson, aztán belekerüljön a btrfs hivatalos telepítő szkriptjébe, szerintem kisebb módosításokkal ez egy elég univerzális megoldás a szabványos btrfs funkciók alapján.

Igen, ismerem az lvm-et, de nincs szükségem további absztrakciós rétegre a hardvertől, és a képek külön szakaszba helyezése sem comme il faut.

UPD 1:
Köszönet a felhasználóknak

Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
OSSZA MEG: