«Սխալ հանդուրժող» համակարգ՝ հիմնված Ubuntu-ի և btrfs-ի վրա: Btrfs ֆայլային համակարգ Ինչ կարող եք անել Btrfs հատորներով
Բնօրինակ. Ինչպես ստեղծել և օգտագործել BTRFS-ի նկարներ - ձեռնարկ
Հեղինակ՝ Իգոր Լյուբունչիչ
Հրապարակման ամսաթիվ՝ 25 փետրվարի 2012թ
Թարգմանություն՝ Ա.Կրիվոշեյ
Փոխանցման ամսաթիվ՝ ապրիլ 2012թ
BTRFS-ը համեմատաբար նոր ֆայլային համակարգ է, որը հիմնված է Sun's ZFS-ի վրա, որն ամենաշատ նորամուծությունը բերեց Unix-ին վերջին 25 տարվա ընթացքում՝ նախքան Oracle-ի կողմից այն գրավելը: BTRFS-ը դեռևս համարվում է անկայուն և, հետևաբար, հարմար չէ արտադրական կիրառությունների համար: Այնուամենայնիվ, այս ֆայլային համակարգը ունի շատ օգտակար հատկություններ, որոնք արժե ուսումնասիրել: Դրանցից մեկը համակարգի snapshot-ների ստեղծումն է։
Թույլ տվեք պարզաբանել. Snapshots-ը համակարգի վիճակի ակնթարթային պատկերն է: Ինչ-որ իմաստով, եթե դուք պատճենում եք ֆայլը և կրկնօրինակում եք, դուք դրա լուսանկարն եք անում պատճենման պահին: Սա կարելի է անել ցանկացած վայրում և ցանկացած ժամանակ: Մտածեք մի ֆայլային համակարգի մասին, որը կարող է իրականում կառավարել ձեր ֆայլերի մի քանի օրինակներ իր կառուցվածքում, և թույլ կտա ձեզ օգտագործել դրանք, ինչպես ցանկանում եք: Հետաքրքիր է հնչում, եկեք ուսումնասիրենք:
BTRFS ներածություն
Նախքան ավելի խորը փորելը, ես կցանկանայի համառոտ ներկայացնել այս ֆայլային համակարգի հնարավորությունները: BTRFS-ը պետք է կարողանա կարգավորել սկավառակի և ֆայլերի կառավարման հետ կապված համակարգի բոլոր գործողությունները, որոնք սովորաբար պահանջում են լրացուցիչ կոմունալ ծառայություններ. BTRFS-ն ապահովում է դեֆրագմենտացիա, բեռի հավասարակշռում, փոքրացում, աճ, տաք փոխանակում, RAID, snapshots, սեղմում, կլոնավորում և այլն, որոնք ներկառուցված են ֆայլային համակարգի դրայվերում: Այլ ֆայլային համակարգերի դեպքում ձեզ հավանաբար կպահանջվեն մի շարք այլ վարորդներ և օգտատերերի կոմունալ ծառայություններ՝ այս բոլոր տեսակի գործողությունները կառավարելու համար, ինչպիսիք են ֆայլային համակարգի ապաֆրագմենտատորը, RAID և LVM դրայվերները և այլն:
Ներկառուցված ֆունկցիոնալությունը նշանակում է արդյունավետություն և օգտագործման հեշտություն: Այնուամենայնիվ, վրա այս պահին BTRFS-ը դեռ լիովին օգտագործելի չէ անկայունության, ինչպես նաև կատարողականի վատթարացման պատճառով՝ համեմատած այլ ֆայլային համակարգերի հետ, ինչպիսիք են Ext4-ը: Բայց դա հսկայական ներուժ ունի, ուստի այն չի կարելի անտեսել, այլ պետք է ուսումնասիրել։
Այս ուղեցույցում ես ձեզ ցույց կտամ, թե ինչպես կառավարել snapshots: Սա սուպեր համապատասխան հատկանիշ է, որը թույլ կտա ստեղծել կրկնօրինակներ կարևոր ֆայլերնախքան դրանցում որևէ փոփոխություն կատարելը և անհրաժեշտության դեպքում վերականգնել դրանք: Ինչ-որ առումով դա նման է Windows System Restore-ին, գումարած ֆայլային համակարգի մակարդակի հետադարձ վարորդին: Ի դեպ, այս հոդվածում, բացի snapshot-ներից, կարող եք գտնել նաև մի քանիսը օգտակար տեղեկատվություն BTRFS ֆայլային համակարգի հետ ամենօրյա աշխատանքի մասին: Փորձարկումն իրականացվել է Fedora 16 Verne համակարգի վրա՝ KDE աշխատասեղանով:
Ինչպես կառավարել BTRFS-ը
Դուք կարող եք օգտագործել BTRFS-ը արմատային ֆայլային համակարգի համար, բացառությամբ /boot-ի, որը պետք է ֆորմատավորվի ավանդական journaling ֆայլային համակարգով: Պարզության համար այս ձեռնարկում մենք կաշխատենք առանձին սարք/dev/sdb1 ձևաչափված է BTRFS-ով և օգտագործվում ըստ անհրաժեշտության: Գործնականում սա կարող է լինել /տուն կամ /տվյալներ կամ ինչ-որ այլ բան:
Ուրեմն ի՞նչ ենք անելու։
Մենք կվերցնենք /dev/sdb1-ը և տեղադրենք այն: Այնուհետև մենք կստեղծենք մի քանի ենթաբաժիններ: Մտածեք ենթաբաժինները որպես վիրտուալ արմատավորված ծառեր, քանի որ դրանցից յուրաքանչյուրը առանձին, անկախ ծառի տվյալների կառուցվածք է, նույնիսկ եթե տվյալները նույնն են:
Ստորև ներկայացված է դրա համար պահանջվող հրամանների հաջորդականությունը: Մի վախեցեք, մենք կբացատրենք, թե ինչպես են նրանք աշխատում:
$ btrfs ենթածավալ ստեղծել /mnt/data $ btrfs ենթածավալ ստեղծել /mnt/data/orig $ echo «Dedoimedo is l33t» > /mnt/data/orig/file $ btrfs ենթածավալ snapshot /mnt/data/orig /mnt/data
/dev/sdb1-ը տեղադրված է /mnt-ի վրա: Մենք ստեղծում ենք ենթաբանալին, որը կոչվում է տվյալներ: Դրա ներսում մենք ստեղծում ենք մեկ այլ ենթաբաժին, որը կոչվում է orig: Եվ արդեն դրա ներսում կստեղծվեն մեր ֆայլերը։ Օգտագործողի տեսանկյունից ենթաբաժինները նման են սովորական գրացուցակների: Այլ կերպ ասած, տվյալները և տվյալները/ծագումը դիրեկտորիաներ են:
Հաջորդը, մենք ստեղծում ենք տեքստային ֆայլսկզբին կոչվում է ֆայլ, որը պարունակում է որոշակի տեքստ: Վերջապես, մենք ստեղծում ենք orig ենթաբանալու նկարը և այն անվանում ենք պահեստային: Այժմ մենք ունենք ծագման ենթաբաժնի նույնական պատճենը: Ահա ապացույցը.
Բացի այդ, ստուգելու համար մենք օգտագործում ենք հրամանը btrfs ենթածավալների ցանկըբոլոր ենթաբաժինները տեսնելու համար.
$ btrfs ենթածավալների ցանկ
Նշենք, որ յուրաքանչյուր ենթաբաժին ունի իր ID համարը: Ինչպես շուտով կտեսնենք, սա կարևոր է։
Կանխադրված դիտում
Ներկայումս /mnt-ը լռելյայն ցույց է տալիս և՛ սկզբնաղբյուրը, և՛ կրկնօրինակը (բոլորը՝ տվյալների մեջ): Մենք կարող ենք փոխել այն: Հիշո՞ւմ եք, որ ավելի վաղ ես նշեցի վիրտուալ արմատային ծառի կառուցվածքները: BTRFS-ը թույլ է տալիս փոխել վիրտուալ արմատային գրացուցակը ցանկացած ենթաբանալու:
Այսպիսով, ենթաբաժինների և նկարների օգտագործումը պարզապես նշանակում է անցում տվյալների տարբեր հիերարխիաների միջև: Կարիք չկա ջնջել, վերագրանցել ֆայլերը կամ որևէ այլ բան անել: Դուք պարզապես անցնում եք մեկ այլ ենթաբաժնի: Այժմ մենք կտեսնենք, թե ինչպես է դա արվում:
Թիմ btrfs ենթածավալ սահմանված-լռելյայն IDայն է, ինչ մեզ պետք է: Մենք լռելյայն տեսքը կդնենք մեկ այլ բաժանման վրա, ապա ապամոնտաժենք սարքը և նորից կտեղադրենք այն: Դա կարեւոր է!
Այժմ, եթե դուք աշխատում եք ֆայլային համակարգի վրա, որը հնարավոր չէ ապամոնտաժել, քանի որ այն օգտագործվում է, օրինակ՝ /usr կամ /etc, դուք պետք է վերագործարկեք համակարգիչը, որպեսզի փոփոխություններն ուժի մեջ մտնեն: Այժմ մեկ այլ ենթաբաժին կցուցադրվի տվյալ գրացուցակի ծառում։ Օգտագործողը չի նկատի տարբերությունը, բայց դիրեկտորիաների տվյալները կփոխվեն։
Իսկապես տեսնելու համար, թե ինչպես է սա աշխատում, մենք կխմբագրենք ֆայլկրկնօրինակում: Փոխարինեք Dedoimedo is l33t տեքստը Dedoimedo is NOT l33t-ով:
$ echo «Dedoimedo-ն l33t ՉԷ» > /mnt/data/backup/file
Լավ, մենք բոլոր ենթաբաժինների ID-ն գիտենք: Հետևաբար, մենք կտեղադրենք ID-ն որպես լռելյայն տեսք: Սա նշանակում է, որ հենց որ նորից տեղադրեք /mnt-ը, մենք այստեղ կտեսնենք այս բովանդակությամբ ֆայլ:
$ btrfs ենթածավալ սահմանված-կանխադրված 257 /mnt $ umount /mnt $ mount /dev/sdb1 /mnt
Հիմա եկեք ամեն ինչ հետ դնենք.
Դա կարելի է անել այնքան անգամ, որքան անհրաժեշտ է.
Վերևում մենք փոխեցինք տեսքը 257-ի և 260-ի միջև, այսինքն՝ սկզբնաղբյուրի և կրկնօրինակի միջև, արդյունքում մենք կարող էինք դիտել փոփոխված ֆայլի բովանդակությունը: Մենք պարզապես օգտագործողին ցույց տվեցինք տարբեր ենթաբաժիններ:
Արդյունքում, եթե մենք ցանկանում ենք տվյալների գրացուցակում տեսնել և՛ սկզբնաղբյուրը, և՛ կրկնօրինակը, մենք պետք է վերականգնենք ենթաբաժնի լռելյայն տեսքը: բարձր մակարդակ, այսինքն՝ տվյալներ։ Նկատի ունեցեք, որ բոլոր տվյալները ցուցադրվում են /mnt գրացուցակում, քանի որ մենք այն ընտրել ենք որպես ամրացման կետ: Այնուամենայնիվ, փոխարենը կարող եք օգտագործել ցանկացած այլ գրացուցակ:
Եզրակացություն
Snapshot ֆունկցիան BTRFS-ում իրականացվում է բավականին կոկիկ, և դրա օգտագործումը դժվար չէ: Իհարկե, դուք պետք է զգույշ լինեք օգտագործել տվյալների ճիշտ ծառը և չխառնել բաները: Բայց հիմա դուք արդեն գիտեք հիմնական հրամաններ BTRFS և դուք կարող եք ավելի վստահ գործել: Ապագայում մենք կփորձարկենք Snapper-ը՝ BTRFS ֆրոնդը, որը հասանելի է openSUSE-ից, որը թույլ է տալիս նույն գործառույթն իրականացնել գրաֆիկական ինտերֆեյսի միջոցով նրանց համար, ովքեր չեն սիրում հրամանի տողը:
Նոր ֆայլային համակարգ տեղափոխվելը միշտ բարդ խնդիր է: Մենք արդեն վստահում ենք հին, ապացուցված ֆայլային համակարգին: Այն կարող է նույնիսկ որոշ սահմանափակումներ ունենալ ֆունկցիոնալության և կատարողականության մեջ, բայց այն մեզ երբեք չի հուսահատեցրել: Նոր ֆայլային համակարգերն առաջարկում են բազմաթիվ հնարավորություններ, բայց հարցն այն է, թե արդյոք կարելի՞ է նրանց վստահել:
Նման ֆայլային համակարգերից մեկը Btrfs-ն է: Սա համեմատաբար նոր ֆայլային համակարգ է, որը հայտնվել է 2007 թվականին և մշակվել է Oracle-ի կողմից։ Այն առաջարկում է նոր հնարավորությունների շատ լայն շրջանակ և, հետևաբար, մեծ հետաքրքրություն է ներկայացնում օգտատերերի համար, սակայն ցանցում դեռևս խոսակցություններ կան, որ այս ֆայլային համակարգը դեռ հարմար չէ մշտական օգտագործման համար: Այս հոդվածում մենք կփորձենք պարզել, թե ինչ հնարավորություններ է տալիս մեզ Btrfs-ը, ինչպես նաև՝ արդյոք այն արդեն կարելի է օգտագործել։
Ինչպես ասացի, Btrfs-ը մշակվել է Oracle-ի կողմից 2007 թվականին: Անվան մեկ վերծանում չկա, ոմանք ասում են, որ դա նշանակում է B-tree FS, մյուսները ավելի լավ Fs: Ինչպես մյուս ֆայլային համակարգերում, բոլոր տվյալները պահվում են սկավառակի վրա որոշակի հասցեներով: Այս հասցեները պահվում են մետատվյալներում: Եվ այստեղից են սկսվում տարբերությունները: Բոլոր մետատվյալները կազմակերպված են որպես բ-ծառեր: Սա ավելի մեծ կատարողականություն է տալիս ֆայլային համակարգի հետ աշխատելիս, ինչպես նաև թույլ է տալիս ավելացնել անսահմանափակ թվով ֆայլեր:
Բայց նույնիսկ դա դեռ ամենը չէ։ Երբ ֆայլը վերագրեք, տվյալները չեն վերագրվում, այլ միայն փոփոխված մասը պատճենվում է նոր վայրում: Այնուհետև մետատվյալները պարզապես թարմացվում են: Սա թույլ է տալիս ստեղծել ֆայլային համակարգի պատկերներ, որոնք սկավառակի տարածություն չեն զբաղեցնում, քանի դեռ շատ փոփոխություններ չեն կատարվել: Եթե հին բլոկն այլևս անհրաժեշտ չէ, քանի որ այն որևէ պատկերի մաս չէ, ապա այն ավտոմատ կերպով ջնջվում է:
Իր կառուցվածքի պատճառով Btrfs-ն ունի հսկայական հնարավորություններօրինակ, այն կարող է կարգավորել այսօրվա շատ մեծ պահեստային մեդիան: Առավելագույն չափըֆայլային համակարգը 16 էքսաբայթ է: Այս ամենը հնարավոր է շնորհիվ ճիշտ օգտագործումըսկավառակի տարածություն: Այլ ֆայլային համակարգերի օգտագործում HDDամբողջությամբ, սկզբից մինչև վերջ՝ արձանագրելու դրա կառուցվածքը։
Btrfs-ն այլ կերպ է անում: Յուրաքանչյուր սկավառակ, անկախ իր չափից, բաժանված է բլոկների՝ 1 ԳԲ տվյալների համար և 256 ՄԲ մետատվյալների համար: Այդ բլոկները այնուհետև հավաքվում են խմբերի, որոնցից յուրաքանչյուրը կարող է պահվել տարբեր սարքեր, խմբում նման բլոկների քանակը կարող է կախված լինել խմբի RAID մակարդակից: Ծավալի կառավարիչն արդեն ինտեգրված է ֆայլային համակարգին, ուստի լրացուցիչ ծրագրակազմ օգտագործելու կարիք չկա:
Տվյալների պաշտպանությունն ու սեղմումն ապահովվում է նաև ֆայլային համակարգի մակարդակով, ուստի այստեղ ձեզ հարկավոր չէ լրացուցիչ ծրագրեր. Btrfs ֆայլային համակարգը նաև աջակցում է տվյալների արտացոլումը բազմաթիվ լրատվամիջոցներում: Ահա btrfs-ի այլ առանձնահատկություններ, որոնք կարելի է նշել.
- Աջակցություն ֆայլային համակարգի snapshots, միայն կարդալու կամ գրելու համար;
- Ստուգիչ գումարներ տվյալների և մետատվյալների համար՝ օգտագործելով crc32 ալգորիթմը: Այս կերպ բլոկի ցանկացած վնաս կարող է որոշվել շատ արագ;
- Սեղմում Զլիբի և Լզոյի հետ;
- SSD-ի հետ աշխատելու համար օպտիմիզացված ֆայլային համակարգը ավտոմատ կերպով հայտնաբերում է ssd-ը և սկսում այլ կերպ վարվել.
- Սխալների հայտնաբերման և ուղղման ֆոնային գործընթաց, ինչպես նաև իրական ժամանակում դեֆրագրման և կրկնօրինակման համար;
- Աջակցում է փոխակերպումը ext4-ից և ext3-ից և հակառակը:
Այս ամենը շատ լավ է, բայց հնարավո՞ր է արդեն օգտագործել այս ֆայլային համակարգը: Փորձենք դրանով զբաղվել:
Արդյո՞ք btrfs-ը պատրաստ է օգտագործման:
Btrfs-ի շուրջ դեռ շատ սխալ պատկերացումներ կան: Դրանցից շատերը բխում են իրական խնդիրներից, որոնք եղել են ֆայլային համակարգի զարգացման սկզբում: Բայց մարդիկ, ովքեր նայում են այս տեղեկատվությանը, չեն նայում դրա ամսաթվին: Այո, Btrfs-ը իսկապես անկայուն և անկայուն էր: Տվյալների կորստի հետ կապված շատ խնդիրներ կային, և շատ օգտատերեր գրում էին այդ մասին, բայց դա դեռ 2010 թ.
Ֆայլային համակարգի ամենակարևոր մասը սկավառակի վրա պահելու ձևաչափն է: Բայց Btrfs ֆայլային համակարգի ձևաչափն արդեն ֆիքսված է, դա տեղի է ունեցել դեռևս 2012 թվականին և այն այլևս չի փոխվում, եթե խիստ անհրաժեշտություն չկա: Միայն սա բավարար է btrfs-ի կայունությունը ճանաչելու համար:
Բայց ինչո՞ւ է շատերի կողմից Btrfs-ը համարվում անկայուն: Դրա համար կան մի քանի պատճառներ: Նախ, դա նոր տեխնոլոգիաներից օգտվողների վախն է: Սա ոչ միայն Linux-ում էր, այլ նաև Microsoft-ում՝ NTFS-ին անցնելով, և Apple-ում։ Բայց այստեղ որոշակի պարադոքս կա, XFS ֆայլային համակարգը անցել է 20 տարվա կայուն զարգացման միջով, բայց ամենակայուն ֆայլային համակարգը ext4-ն է, որը մշակվել է ext3-ի պատառաքաղից 2006 թվականին: Իրականում այն մեկ տարով մեծ է Բտրֆսից։
Երկրորդ պատճառը ակտիվ մշակման մեջ է, չնայած տվյալների պահպանման ձևաչափը սառեցված է, հիմնական կոդի բազան դեռ ակտիվորեն մշակված է, և դեռ շատ տեղ կա կատարողականի բարելավման և նոր հնարավորությունների համար:
Բայց արդեն բազմաթիվ հաստատումներ կան, որ ֆայլային համակարգը պատրաստ է։ Այս ֆայլային համակարգը օգտագործվում է Facebook-ի սերվերներում, որտեղ ընկերությունը պահպանում է իր զգայուն տվյալները։ Եվ դա ինքնին կարևոր գործոն է։ Ֆայլային համակարգի բարելավման վրա աշխատում են այնպիսի ընկերություններ, ինչպիսիք են Facebook-ը, SuSE-ն, RedHat-ը, Oracle-ը, Intel-ը և այլք: Այս ֆայլային համակարգը լռելյայն օգտագործվում է SUSE Linux Enterprise-ում 12-րդ թողարկման պահից: Այս բոլոր գործոնները միասին ապացուցում են, որ ֆայլային համակարգը բավականին պատրաստ է օգտագործման համար: Եվ հաշվի առնելով btrfs-ի ֆունկցիոնալությունն ու առանձնահատկությունները, այն արդեն կարող է օգտագործվել:
Btrfs-ի օգտագործումը
Ինչու է արժե օգտագործել Btrfs-ը և արդյոք արժե այն ընդհանրապես, պարզվեց: Այժմ ես կցանկանայի ցույց տալ որոշակի պրակտիկա, որպեսզի կարողանաք գնահատել այս ֆայլային համակարգը գործողության մեջ: Օրինակներ բերեմ՝ հիմնվելով Ubuntu-ի վրա։ Նախ, տեղադրեք ֆայլային համակարգի կառավարման գործիքները.
sudo apt տեղադրել btrfs-tools
btrfs ֆայլային համակարգի ստեղծում
Նախ անհրաժեշտ է ստեղծել ֆայլային համակարգ: Եկեք ասենք, որ մենք ունենք երկու կոշտ սկավառակներ/dev/sdb և /dev/sdc, մենք ցանկանում ենք դրանց վրա ստեղծել մեկ ֆայլային համակարգ՝ տվյալների արտացոլմամբ: Դա անելու համար պարզապես արեք.
sudo mkfs.btrfs /dev/sdb /dev/sdc
Լռելյայն կլինի RAID0 տվյալների համար (առանց ավելորդության, իսկ RAID1՝ մետատվյալների համար (կրկնվող մեկ սկավառակի վրա): Մեկ սկավառակ օգտագործելիս մետատվյալները նույնպես կրկնօրինակվում են, եթե ցանկանում եք անջատել այս վարքագիծը, կարող եք օգտագործել -m սինգլը: տարբերակ:
sudo mkfs.btrfs -m սինգլ /dev/sdb
Բայց դա անելով՝ դուք մեծացնում եք տվյալների կորստի ռիսկը, քանի որ եթե մետատվյալները կորչում են, ապա տվյալները նույնպես:
Նորաստեղծ ֆայլային համակարգի մասին տեղեկատվությունը կարող եք դիտել հրամանով.
sudo btrfs ֆայլային համակարգը ցույց է տալիս /dev/sdb
Կամ բոլոր մոնտաժված ֆայլային համակարգերի մասին.
sudo btrfs ֆայլային համակարգի ցուցադրություն
btrfs լեռ
Տեղադրելու համար օգտագործեք սովորական հրամանը.
sudo mount /dev/sdb /mnt
Դուք կարող եք մոնտաժել ցանկացած սկավառակ, այն կունենա նույն ազդեցությունը: /etc/fstab-ի տողը կունենա հետևյալ տեսքը.
/dev/sdb /mnt btrfs կանխադրված է 0 1
Այժմ մենք նայում ենք զբաղեցրած սկավառակի տարածության մասին տեղեկատվությանը.
sudo btrfs ֆայլային համակարգ df /mnt
Սեղմում btrfs-ում
Սեղմումը միացնելու համար պարզապես մոնտաժելիս ավելացրեք սեղմման տարբերակը: Դուք կարող եք դրան փոխանցել lzo կամ zlib ալգորիթմը.
sudo mount -o compress=lzo /dev/sdb /mnt
$ sudo mount -o compress=zlib /dev/sdb /mnt
Btrfs-ի վերականգնում
Կոռումպացված Btrf-ները վերականգնելու համար օգտագործեք վերականգնման տեղադրման տարբերակը.
sudo mount -o վերականգնում /dev/sdb /mnt
Չափի փոփոխություն
Դուք կարող եք իրական ժամանակում չափափոխել ծավալը՝ օգտագործելով չափափոխման հրամանը.
sudo btrfs ֆայլային համակարգի չափը -2g /mnt
Փոքրացրեք չափը 2 գիգաբայթով։ Այնուհետև ավելացրեք 1 գիգաբայթով.
sudo btrfs ֆայլային համակարգի չափափոխում +1g /mnt
Ենթածավալների ստեղծում
Դուք կարող եք ստեղծել տրամաբանական միջնորմներ, ենթածավալներ հիմնական բաժանման ներսում՝ օգտագործելով Btrfs: Նրանք կարող են տեղադրվել հիմնական միջնորմի ներսում.
sudo btrfs ենթածավալը ստեղծել /mnt/sv1
$ sudo btrfs ենթածավալ ստեղծել /mnt/sv2
$ sudo btrfs ենթածավալ ցուցակ /mnt
Ենթածավալների տեղադրում
Դուք կարող եք տեղադրել ենթածավալը վերջին հրամանով ստացված ID-ով.
sudo umount /dev/sdb
sudo mount -o subvolid=258 /dev/sdb /mnt
Կամ կարող եք օգտագործել անունը.
sudo mount -o subvol=sv1 /dev/sdb /mnt
Ենթածավալների հեռացում
Նախ, տեղադրեք btrfs արմատը ենթածավալի փոխարեն.
sudo umount /mnt
sudo mount /dev/sdb /mnt/
Ենթածավալը հեռացնելու համար կարող եք օգտագործել տեղադրման ուղին, օրինակ՝
sudo btrfs ենթածավալ ջնջել /mnt/sv1/
Պատկերների նկարահանում
Ֆայլային համակարգ Btrfs-ը թույլ է տալիս ստեղծել փոփոխությունների պատկերներ: Դրա համար օգտագործվում է snapshot հրամանը: Օրինակ, եկեք ստեղծենք ֆայլ, ապա լուսանկարենք.
հպեք /mnt/sv1/test1 /mnt/sv1/test2
Ստեղծեք նկար՝
sudo btrfs ենթածավալ ակնթարթ /mnt/sv1 /mnt/sv1_snapshot
Մեզանից ոչ ոք պաշտպանված չէ սխալներից։ Երբեմն ծուռ ձեռքերի սինդրոմը հանգեցնում է շատ տխուր հետեւանքների։ Երբեմն շատ դժվար է դիմադրել և համակարգով «հակագիտական» փորձեր չանել կամ չստուգված աղբյուրից ներբեռնված սցենար/հավելված չգործարկել։ Եվ այստեղ օգնության են հասնում հավելվածները մեկուսացված միջավայրում գործարկելու տարբեր գործիքներ և ընդլայնված ֆայլային համակարգի հնարավորություններ:
Ներածություն
*nix համակարգերը միշտ համեմատաբար դիմացկուն են եղել սխալ գրված հավելվածների նկատմամբ (իհարկե, պայմանով, որ դրանք չեն գործարկվել որպես արմատ): Այնուամենայնիվ, երբեմն ցանկություն է առաջանում փորձարկել համակարգի հետ՝ զվարճանալ կոնֆիգուրացիաներով, որոնցից մի քանիսը կարող են կենսական նշանակություն ունենալ, գործարկել կասկածելի սկրիպտ, տեղադրել անվստահելի աղբյուրից ստացված ծրագիր... Հակառակ դեպքում, պարանոյան պարզապես հաղթահարում է, և ես ուզում եմ հնարավորինս շատ խոչընդոտներ ստեղծել՝ հնարավոր չարամիտ ծրագրերից պաշտպանվելու համար: Հոդվածում նկարագրվելու են չպարտադրված սխալների հետևանքներից խուսափելու որոշ միջոցներ՝ հետ գլորվելով նախկինում ստեղծված վերադարձի կետ (Btrfs snapshots), կասկածելի ծրագիր գործարկելով սահմանափակ միջավայրում և զվարճացնելով ձեր պարանոյան (Arkose և chroot):
chroot
Chroot-ը հայտնի է վաղուց։ Այն հսկայական առավելություն ունի այլ գործիքների նկատմամբ՝ այն աշխատում է ամենուր, նույնիսկ շատ հին բաշխումների վրա: Այս բոլոր նորաստեղծ ավազատուփերը ոչ այլ ինչ են, քան դրա հետագա զարգացումը: Բայց կան նաև թերություններ. Օրինակ, ցանցը սահմանափակելու միջոց չկա, root-ը կարող է որոշակի ջանքեր գործադրել դրանից, և որ ամենակարևորը բավականին դժվար է այն կարգավորելը: Չնայած դրան, որոշ նպատակների համար, օրինակ՝ փաթեթներ աղբյուրից տեղադրելու համար, այն իդեալական է:
chroot միջավայր ստեղծելու առնվազն երեք եղանակ կա.
- Դուք սահմանում եք գործարկված ծրագրի աշխատանքի համար անհրաժեշտ բոլոր հավելվածներն ու գրադարանները։ Սա ամենաճկուն ճանապարհն է, բայց և ամենից շփոթեցնողը։
- chroot միջավայրը ձևավորվում է դինամիկ: Ժամանակին կար «Isolate» նախագիծը, որն արեց դա, բայց հիմա, անհայտ պատճառներով, մոռացության է մատնվել։
- Բազային համակարգի տեղակայումը նշված գրացուցակում և արմատավորումը դրա վրա - ես նկարագրելու եմ այն:
գրուբ և բտրֆս
Ամենայն հավանականությամբ, Btrfs միջնորմից բեռնելիս Grub-ը երդվելու է, որ նոսր ֆայլերը չեն թույլատրվում և կխնդրի սեղմել որևէ ստեղն։ Որպեսզի այս հաղորդագրությունը չհայտնվի, բացեք այն ձեր սիրելիի մեջ տեքստի խմբագիրֆայլ /etc/grub.d/00.header և այնտեղ մեկնաբանիր հետևյալ տողը.
Եթե [ -n "\$(have_grubenv)" ]; ապա եթե [ -z "\$(boot_once)" ]; ապա save_env recordfail; fi; fi
Փաստորեն, recordfail փոփոխականն անհրաժեշտ է ցիկլային վերագործարկումը կանխելու համար, որի համար այն կծկվում է գործարկման ժամանակ, իսկ հետո հաջող բեռնման դեպքում սահմանվում է 0: Թեև անցանկալի է մեկնաբանել այս ընթացակարգի համար պատասխանատու կոդը, Կարծում եմ, որ աշխատասեղանի համակարգում բավական է, որ դուք կարող եք անել առանց դրա:
Ognelis in the sandbox - այսպես է ասում վերնագիրը
Նախ, եկեք տեղադրենք debootstrap փաթեթը, որն օգտագործվում է հենց այս նպատակով։
$ sudo apt-get install debootstrap
Այնուհետև մենք կստեղծենք գրացուցակ, որում կտեղակայվի chroot-ը և կտեղակայենք դրա մեջ քանակական բազայի համակարգը: Ընդհանուր առմամբ, այն կարող է ստեղծվել ցանկացած վայրում, բայց նրա ավանդական դիրքը /var/chroot է: Քանի որ հետևյալ հրամաններից շատերը պահանջում են արմատային թույլտվություններ, իմաստ ունի անցնել գերօգտագործողի հաշվին.
$ sudo su - # mkdir /var/chroot && cd /var/chroot # debootstrap quantal ./quantal-chr1 http://mirror.yandex.ru/ubuntu
Եկեք նայենք վերջին հրամանին: Այն տեղակայում է Quantal Ubuntu-ի թողարկումը առանձին quantal-chr1 գրացուցակի մեջ (դուք երբեք չգիտեք, ձեզ հանկարծ մեկ այլ chroot է անհրաժեշտ) մոտակա հայելից: Տեղակայման ավարտից հետո դուք պետք է քարտեզագրեք procfs, sysfs ֆայլային համակարգերը և (եթե կիրառելի է) /dev գրացուցակը այս ենթածառի վրա: Այն դեպքում, երբ chroot-ը կօգտագործվի միայն տեքստային հավելվածների համար մինչև վերաբեռնումը, հետևյալ հրամանները պետք է բավարար լինեն.
# mount --bind /proc /var/chroot/quantal-chr1/proc # mount --bind /sys /var/chroot/quantal-chr1/sys # mount --bind /dev /var/chroot/quantal-chr1/ dev
Եթե ցանկանում եք, որ այս ենթածառը աշխատի վերաբեռնումից հետո, ավելացրեք համապատասխան տողերը /etc/fstab-ին: Դե, ոմանց աշխատանքի համար գրաֆիկական հավելվածներ/tmp և /var/run/dbus դիրեկտորիաները նույնպես պետք է ցուցադրվեն: Դրանից հետո արդեն կարող եք մուտքագրել հետևյալ հրամանը, որը, փաստորեն, դարձնում է chroot.
# chroot /var/chroot/quantal-chr1/
Եվ դուք արդեն փակված եք դրա մեջ: Որպեսզի չշփոթեք chroot-ը իրական համակարգի հետ, խորհուրդ եմ տալիս փոխել shell-ի հուշումը։ Օրինակ, եկեք տեղադրենք և գործարկենք Skype-ը chroot-ում: Դա անելու համար դուք պետք է տեղադրեք schroot փաթեթը հյուրընկալող համակարգում, ինչը հեշտացնում է ծրագրերի գործարկումը chroot միջավայրում.
Տեղակայում chroot-ի բազային համակարգում՝ օգտագործելով debootstrap # apt-get install schroot
Այնուհետև մենք մուտք ենք ավելացնում /etc/schroot/schroot.conf ֆայլին: Իմ դեպքում ավելացրի հետևյալը.
/etc/schroot/schroot.conf description=Quantal Skype գրացուցակ=/var/chroot/quantal-chr1 priority=3 users=rom group=rom root-groups=root,rom
Մենք փոխանցում ենք /dev, /proc, /sys, /tmp և /var/run/dbus - տես վերևում, թե ինչպես դա անել: Chroot-ում ավելացրեք skype-ի օգտատեր և խումբ. ցանկալի է, որ uid-ը և gid-ը համապատասխանեն իրական համակարգի (իմ դեպքում՝ rom) հիմնական օգտագործողի uid/gid-ին, որի համար մուտքագրում ենք հետևյալ հրամանները.
# schroot -c quantal-skype -u արմատ # addgroup --gid 1000 skype # adduser --disabled-password --force --uid 1000 --gid 1000 skype
Դրանից հետո մենք նոր ներբեռնված Skype-ը կրկին դնում ենք chroot-ում և բավարարում ենք դրա կախվածությունները.
# dpkg --force-all -i skype-ubuntu-precise_4.1.0.20-1_i386.deb # apt-get -f install # exit
Հիմնական համակարգում մենք թույլ ենք տալիս միացումներ X սերվերին localhost-ից և մուտքագրում ենք chroot որպես կանոնավոր օգտագործող:
$ xhost +localhost $ cd / && schroot -c quantal-skype -u rom /bin/bash
Սահմանեք DISPLAY փոփոխականը (որը դուք պետք է նայեք հիմնական համակարգում) և գործարկեք Skype-ը.
$ արտահանում DISPLAY=":0.0" $ skype --dbpath=/home/skype/.Skype &
Skype-ը հաջողությամբ տեղադրվեց և գործարկվեց chroot միջավայրում:
Հնարավոր կլիներ գրել սցենար՝ մեկնարկը հեշտացնելու համար, բայց դուք կարող եք դա անել ինքներդ:
Օգտագործելով Arkose
Arkose-ն աշխատում է Windows-ի ավազատուփերի նմանությամբ, ինչպիսին է Sandboxie-ը: Գործնականում սա հարմար փաթաթան է LXC տարաների համար: Բայց, ինչպես գիտեք, հարմարավետությունն ու ճկունությունը երբեմն անհամատեղելի են. նուրբ թյունինգստեղծված բեռնարկղերը դժվար է. Պլյուսներից ես ինտուիտիվ նշում եմ հստակ ինտերֆեյս(սա այն դեպքում, եթե դուք օգտագործում եք GUI-ն, սակայն, գործարկումը սկսած հրամանի տողդա նույնպես շատ պարզ է), բայց մինուսներից - լռելյայնորեն այն պահանջում է բավականին շատ ազատ տարածք կոշտ սկավառակի վրա, և կան որոշ հնարավոր ուղիներըշրջանցում; բայց եթե դուք օգտագործում եք Arkose-ը որպես լրացուցիչ փաթաթան պոտենցիալ ուղիներչարամիտ ծրագրերի (բրաուզերի) ներդրում կամ նույնիսկ որոշների հետ փորձարկումներ իրականացնելու համար հետաքրքիր հավելված, չի խանգարի։
seccomp և seccomp-bpf
Seccomp-ը քիչ հայտնի մեխանիզմ է, որը ներդրվել է 2.6.12 միջուկում, որը թույլ է տալիս գործընթացին միակողմանի անցում կատարել «անվտանգ» վիճակի, որտեղ նրան հասանելի են միայն չորս համակարգային զանգեր՝ exit(), sigreturn(), read() և write(), իսկ վերջին երկուսը հասանելի են միայն արդեն բաց ֆայլեր. Եթե գործընթացը փորձի զանգահարել որևէ այլ syscall, այն անմիջապես կսպանվի:
Ակնհայտ է, որ այս լուծումը այնքան էլ ճկուն չէ։ Այս առումով 3.5 միջուկում հայտնվեց seccomp-bpf-ը, որը թույլ է տալիս BPF-ի կանոնների միջոցով ճշգրտել, թե որ համակարգի կանչերը (և դրանց արգումենտները) են թույլատրվում, իսկ որոնք՝ ոչ։ Seccomp-bpf-ն օգտագործվում է Google Chrome-ում, Chrome OS-ում, ինչպես նաև ապահովված է Ubuntu 12.04-ում:
Նախքան Arkose-ն օգտագործելը, այն պետք է տեղադրվի: Ընթացակարգը ստանդարտ է.
$ sudo apt-get տեղադրել arkose-gui
Կտեղադրվեն ինչպես GUI (arkose-gui), այնպես էլ հրամանի տող կոմունալ ծրագիրը (arkose): Գրաֆիկական ինտերֆեյսը այնքան պարզ է, որ ես իմաստ չեմ տեսնում այն նկարագրելու մեջ, ավելի լավ է անմիջապես անցնել պրակտիկայի:
Ձեռքով ստեղծում
միայն կարդալու ակնարկ-
ta in btrfs
Հրամանի տողի ընտրանքները հաշվի կառնեն.
- -n (ոչ, ուղղակի, զտված) - ցանցը քարտեզագրեք ավազատուփում: Ոչ մեկը և ուղղակի տարբերակներն ինքնըստինքյան բացատրելի են, զտված, ստեղծում է իր ինտերֆեյսը յուրաքանչյուր ավազատուփի համար: Գործնականում ավելի լավ է օգտագործել ոչ մեկը, կա՛մ ուղղակի, քանի որ ֆիլտրի տեղադրումը երկար ժամանակ է պահանջում:
- -d (ոչ մեկը, համակարգ, նիստ, երկուսն էլ) - մուտք դեպի D-Bus ավտոբուսներ ավազարկղից:
- -s չափը - սահմանում է պահեստի չափը մեգաբայթերով: Նախնականը 2000 ՄԲ է ext4-ի համար, կամ հիշողության կեսը tmpfs-ի համար: Sandbox-ում աշխատող ծրագրի ավարտից հետո պահեստը ոչնչացվում է:
- -t - պահեստավորման ֆայլային համակարգի տեսակը: Նախնականը ext4 է:
- --root directory - Նշում է գրացուցակը, որը քարտեզագրված է ավազարկղում որպես արմատ:
- --արմատային տիպ (կով, կապել) - ինչպես ճիշտ ցուցադրել արմատը: Եթե դուք օգտագործում եք կով, ապա ավազատուփը փակելուց հետո ցանկացած փոփոխություն կկորչի, և եթե կապեք, դրանք կպահպանվեն:
- --base-path - նշում է այն վայրը, որտեղ պահվում է ավազատուփը: Նախնականը ~/.arkose է։
- --bind directory և --cow directory - ցուցադրում է գրացուցակը կա՛մ կովի ռեժիմում, կա՛մ ուղղակիորեն: Բնականաբար, այս կամ այն տարբերակի օգտագործումը կախված է արմատային քարտեզագրման տեսակից. անիմաստ է օգտագործել --cow տարբերակը մի գրացուցակի վրա, որն արդեն պատճենահանված է:
- -h - օգտագործեք իրական տնային գրացուցակը: Նման է --bind $HOME-ին:
- -p - թույլ է տալիս օգտագործել PulseAudio:
Սկսենք Firefox-ը որպես օրինակ.
$ sudo arkose -n ուղիղ -p firefox
Այս հրամանը կգործարկի Firefox-ը վեբ հասանելիությամբ և PulseAudio-ով: Քանի որ յուրաքանչյուր նորաստեղծ կոնտեյներ լռելյայն ունի իր սեփական տան գրացուցակը, firelis-ի պրոֆիլը նույնպես նոր կլինի՝ առանց տեղադրված հավելումների, եթե ունեք:
«Բայց սպասե՛ք։ Ինչու սուդո: - կարող է ողջամիտ հարց առաջանալ. Փաստն այն է, որ որոշ նախապատրաստական գործողություններ հասանելի են միայն արմատից: Այնուամենայնիվ, ես շտապում եմ ձեզ հանգստացնել. գործարկված ծրագիրը կաշխատի ներկայիս օգտագործողի իրավունքներով:
Օգտատիրոջ ավելացում Skype-ը chroot-ում գործարկելու համար
Համառոտ BTRFS-ի մասին
Պատահում է, որ թարմացումները տեղադրելուց հետո համակարգը փլուզվում է։ Windows System Restore բաղադրիչի նման գործիքներն այստեղ օգտակար կլինեն: Ես հպարտ եմ ասել, որ մենք ունենք դրանք: Եվ այդ գործիքներից մեկը Btrfs-ն է: Oracle-ի նոր ֆայլային համակարգի առավելություններից հարկ է նշել հետևյալը.
- Copy-on-Write. Այս տեխնոլոգիան օգտագործվում է snapshots ստեղծելու համար՝ համակարգի վիճակի ակնթարթային պատկերներ: Պատկերի ստեղծման ժամանակ FS դրայվերը պատճենում է մետատվյալները դրա մեջ և սկսում վերահսկել իրական ձայնագրությունը: Եթե այն հայտնաբերվի, բնօրինակ տվյալների բլոկները տեղադրվում են snapshot-ում, իսկ դրանց տեղում գրվում են նորերը:
- Ինոդների դինամիկ տեղաբաշխում: Ի տարբերություն հին սերնդի FS-ի՝ Btrfs-ը ֆայլերի քանակի սահմանափակում չունի։
- Ֆայլի սեղմում.
- Ֆայլային համակարգի հոսթինգի հնարավորությունը մի քանի ֆիզիկական լրատվամիջոցների վրա: Փաստորեն, սա նույն RAID-ն է, միայն ավելի բարձր մակարդակ: Գրելու պահին RAID 0, RAID 1 և RAID 10 աջակցվում են, մինչդեռ RAID 5-ի աջակցությունը գտնվում է զարգացման վաղ փուլերում:
Պատկերների ստեղծում և ջնջում
Նոր սերնդի ֆայլային համակարգի վրա գործողություններ կատարելու համար, ինչպիսիք են նկարների ստեղծումը, ծավալի դեֆրագրումը և շատ ուրիշներ, օգտագործվում է btrfs հրամանը: Դրա շարահյուսությունն է ընդհանուր դեպք, հաջորդը:
btrfs<команда> <аргументы>
Ինչպիսի՞ գործողություններ կարելի է կատարել Btrfs-ի վրա: Ստորև բերված են այն հրամանները, որոնք ինձ հետաքրքիր էին:
- btrfs subvol ստեղծել [<путь>/]<имя>- ստեղծում է ենթածավալ (տես կողագոտին): Եթե ճանապարհը նշված չէ, այն ստեղծում է ընթացիկ գրացուցակում:
- btrfs subvol ջնջել<имя>- համապատասխանաբար ջնջում է ենթածավալը:
- btrfs subvol գտնել-նոր<путь> <поколение>- նշված ուղու վերջին փոփոխված ֆայլերի ցանկը՝ սկսած նշված սերնդից: Ցավոք, դա դեռ հնարավոր չէ պարզ ձևովպարզեք որոշակի ֆայլի ներկայիս սերունդը, ուստի այս հրամանի օգտագործումը կարող է ուղեկցվել դափի հետ պարելով:
- btrfs subvol snapshot [-r]<подтом> <путь к снапшоту>- ծրագրի կարևորագույն կետը. Ստեղծում է նշված ենթածավալի նկարը դեպի դրան նշված ճանապարհով: -r տարբերակն անջատում է նկարների վրա գրելը:
- btrfs subvol ցուցակ<путь>- ցույց է տալիս ենթածավալների և նկարների ցանկը նշված ճանապարհին:
- btrfs filesys df - տարածքի օգտագործումը նշված ամրացման կետի համար:
- btrfs ֆայլերի չափափոխում [+/-]<новый размер> <путь>- այո, այո, Btrfs-ն ունի «live» համակարգով չափափոխելու հնարավորություն, և ոչ միայն մեծացնել, այլև նվազեցնել: Փաստարկներով, կարծում եմ, ամեն ինչ քիչ թե շատ պարզ է, բայց, բացի չափը նշելուց, կարելի է օգտագործել max արգումենտը, որը ընդլայնում է ֆայլային համակարգը առավելագույն հնարավոր չափի:
Մնացած հրամանները, թեև հետաքրքիր են, կապված են հոդվածի թեմայի հետ միայն այնքանով, որքանով, և մենք դրանք չենք դիտարկի: Այսպիսով, ընթացիկ ամսաթվով ենթահատորի նկարը ստեղծելու համար, օրինակ, արմատային գրացուցակը, մենք մուտքագրում ենք հետևյալ հրամանը.
$ sudo btrfs subvol snap -r / /snapshot-2013-01-16
$ sudo btrfs subvol del /snapshot-2013-01-16
Btrfs ենթահատոր
Btrfs ենթածավալը կարող է գործել երկու եղանակով՝ որպես գրացուցակ և որպես VFS օբյեկտ՝ մի բան, որը կարող է տեղադրվել: Օրինակ՝ Ubuntu-ն տեղադրելիս ստեղծվում է երկու ենթածավալ՝ @ և @home։ Առաջինը պարունակում է համակարգի ֆայլեր, երկրորդը օգտագործողի տվյալներն են։ Սա նման է սկավառակի բաժանմանը, միայն եթե նախկինում մեկ բաժանումը կարող էր պարունակել, որպես կանոն, միայն մեկ VFS օբյեկտ, այժմ մեկ բաժանման վրա կարող են լինել միանգամից մի քանի օբյեկտ, և դրանք կարող են տեղադրվել:
Ավտոմատացում
Ես շատ իմաստ չեմ տեսնում ձեռքով նկարներ ստեղծելու մեջ. դուք պարզապես կարող եք մոռանալ դա անել: Մտքիս են գալիս ավտոմատացման երեք սցենար.
- գրեք սցենար և դրեք այն rc.local-ում;
- գրել սցենար և տեղադրել այն cron-ում;
- օգտագործեք btrfs autosnap հրամանը:
Ցավոք, Ubuntu 12.10-ում վերջին մեթոդը ինչ-ինչ պատճառներով հասանելի չէ, ուստի գործնականում ընտրություն որպես այդպիսին չկա: Անձամբ ես նախընտրեցի գրել cron script, բայց նախ եկեք ստեղծենք ենթահատոր, որտեղ կպահվեն մեր snapshot-ները: Ինչի համար? Գոնե արմատային թղթապանակը չաղբոտելու համար։
# mkdir /mnt/sda11 # mount /dev/sda11 /mnt/sda11 # btrfs subvol create /mnt/sda11/@snapshots # umount /mnt/sda11
Տեսնենք, թե ինչ են անում այս հրամանները: Քանի որ իրական ֆայլային համակարգի արմատն այս պահին հասանելի չէ (ubuntu-ն օգտագործում է @ ենթածավալը որպես արմատ), մենք ստիպված ենք այն ձեռքով տեղադրել: Իմ դեպքում դա /dev/sda11-ում է: Երրորդ հրամանով մենք ստեղծում ենք @snapshots ենթածավալը, այնպես որ, եթե չմոնտաժենք այն կամ իրական արմատը, դրա բովանդակությունը անհասանելի կլինի: Իսկ հիմա իրական սցենարը.
Autosnap.sh #!/bin/bash set -e VOLUME=/dev/sda11 TMP_PATH=/tmp/snapshots MOUNT_OPTS=" [էլփոստը պաշտպանված է]" # Ընթացիկ ամսաթիվ և ժամ - անհրաժեշտ է ակնարկի թղթապանակները անվանելու համար NOW="$(ամսաթիվ +%Y%m%d%H%M)" NOW_SEC="$(ամսաթիվ +%s)", եթե [ $# -ne 1 ] ; then # Եթե սկրիպտը գործարկվում է առանց արգումենտների, ապա լռելյայն սահմանեք մեկ օր առաջ OLDER_SEC="$(date --date "1 day ago" +%s)" else # Եթե ունենք արգումենտ, ապա ենթադրում ենք, որ սա ամսաթիվը ցանկացած ձևաչափով, որը հասկանում է ամսաթիվ հրամանը, բոլոր հետևանքներով OLDER_SEC="$(date --date "$1" +%s)" fi # Նվազեցնել ընթացիկ ամսաթիվըպահանջվում է և փոխարկեք այն րոպեների 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)" && ( # Mount mkdir "$(TMP_PATH)/$(NOW)/" # Ստեղծել snapshots btrfs subvol snap / "$(TMP_PATH)/$(NOW)/rootsnap" > / dev/null 2>&1 btrfs subvol snap /home "$(TMP_PATH)/$(NOW)/homesnap" > /dev/null 2>&1 ) && ( # Փնտրեք թղթապանակներ, որոնց պատկերները ավելի հին են, քան f-ի նշված ամսաթիվը «find»-ում: $ (TMP_PATH)" -մտածողություն 1 -առավելագույն խորություն 1 -տիպ d -cmin +"$OLDER_MIN" -print0 |xargs -0`; արեք btrfs subvol del "$(f)/rootsnap" > /dev/null 2>&1 && btrfs subvol del "$(f)/homesnap" > /dev/null 2>&1 && # և ջնջել նկարներն ու թղթապանակները, որոնք պարունակում են դրանք rmdir "$f" կատարված ) umount -l "$(TMP_PATH)" && rmdir "$(TMP_PATH )"
Այս սկրիպտը կարելի է տեղադրել այնտեղ, որտեղ հարմար է (ես անձամբ նախընտրում եմ նման բաներ տեղադրել /usr/local/bin-ում, բայց սա ճաշակի հարց է) և գործարկել կամ cron-ից, կամ rc.local-ից։ Լռելյայնորեն, սկրիպտը պտտում է մեկ օրից ավելի հին նկարներ, բայց դուք կարող եք նշել ցանկացած ցանկալի համար ամսաթիվ հրամանի ձևաչափով, ամենակարևորը, մի մոռացեք փակցնել չակերտների մեջ:
Օգտագործելով ISO պատկեր
Որպեսզի ձայնագրված ubunt-ով սկավառակը չքաշեք ամեն անգամ, երբ որևէ կենսական ֆայլ վնասվում է, հնարավոր է Grub մենյուում ավելացնել boot-ի տարրը ISO պատկերից, ինչը ես առաջարկում եմ անել: Դա անելու համար ձեզ հարկավոր է ոչ Btrfs միջնորմ (քանի որ անհայտ պատճառներով Ubuntu ISO-ի ստանդարտ initramfs-ը չի ցանկանում տեսնել պատկերը, եթե այն գտնվում է նկարագրված FS-ով բաժանման վրա) և ուղիղ ձեռքեր: /etc/grub.d/40_custom ֆայլին ավելացրեք հետևյալ տողերը.
Menuentry «Ubuntu 12.10 i386 iso» ( insmod part_msdos insmod fat # Տեղադրեք արմատը, որտեղից մենք ստանում ենք ISO հավաքածու root="hd0,msdos7" # Ուղ դեպի պատկերը վերը նշված արմատային հավաքածուի isofile=/ubuntu-12.10-desktop- i386.iso # Տեղադրեք որպես հանգուցային սարք անմիջապես Grub loopback loop-ում $isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt -- initrd (loop)/casper/initrd.lz )
և գործարկեք հրամանը՝ Grub-ի հիմնական կազմաձևը թարմացնելու համար.
$ sudo թարմացման գրաբ
Այժմ, նույնիսկ համակարգի լուրջ վնասման դեպքում, եթե, իհարկե, բեռնիչի և նրա ֆայլերի վրա չի ազդում, դուք միշտ կարող եք բեռնել ISO պատկերից և փոխել: կոռումպացված ֆայլերկամ վերադառնալ համակարգի նախկին վիճակին:
ՏԵՂԵԿՈՒԹՅՈՒՆՆԵՐ
Եթե դուք աշխատում եք chroot միջավայրում որպես root, ապա այնտեղից փախչելու հնարավորություն կա։ Ճանապարհներից մեկն օգտագործելն է համակարգային զանգ mknod(), որին հաջորդում է իրական արմատի տեղադրումը: grsecurity patchset-ի տեղադրումը լուծում է այս խնդիրը:
Btrfs հրամաններն ունեն ստանդարտ և կրճատ ձև: Օրինակ՝ «btrfs subvolume snapshot» հրամանը կարելի է գրել «btrfs su sn»-ով։
Այսպիսով, ենթադրենք, դուք թողել եք համակարգը և պետք է այն վերականգնել Btrfs-ի լուսանկարից: Դա անելու համար բեռնեք այս ISO պատկերից, տեղադրեք այն միջնորմը, որի վրա գցել եք համակարգը՝ ճիշտ բաժինը, ոչ թե ենթածավալը: - և մուտքագրեք հետևյալ հրամանները (իհարկե, հարմարեցված ձեր snapshots-ի և partitions-ի համար).
# cd /mnt/sda11 # mv @ @_badroot # mv @snapshots/201302011434/rootsnap @
Նույնը, անհրաժեշտության դեպքում, մենք անում ենք @home-ի և reboot-ի հետ։ Եթե ամեն ինչ լավ է անցել, ապա կարող եք հեռացնել @_badroot:
$ sudo btrfs subvol del @_badroot
Եզրակացություն
*nix համակարգերում կան վատ փորձերից պաշտպանվելու կամ մեղմելու բազմաթիվ եղանակներ: Ես վերանայել եմ դրանցից մի քանիսը: Այնուամենայնիվ, հարկ է նշել, որ այս բոլոր մեթոդները նախատեսված են հիմնականում փորձարարների համար, ովքեր սիրում են ավելի խորանալ համակարգը: Նրանք հարմար չեն չարամիտ ծրագրեր որսալու համար. դրանք բավական հեշտ է հայտնաբերել, թեև դրանք, իհարկե, ապահովում են անվտանգության որոշակի մակարդակ:
Որպես գեյք, ես դեռ սովորություն ունեմ անընդհատ փորձարկել համակարգը՝ վերակառուցել, տեղադրել ոչ կայուն RC միջուկներ, ներառյալ փորձնական թարմացման ճյուղերը: Հաճախ, ես նույնիսկ կասեի, որ շատ հաճախ եմ խախտում համակարգը (իմ անձնական լավագույնը, 2 շաբաթ առանց վերատեղադրման):
Ի՞նչ է նշանակում ընդմիջում: Երբ ինչ-որ բան չափազանց վատ է աշխատում, օրինակ՝ LibreOffice-ը և Compiz-ը, որոնք հաճախ խափանում են և սիրում են սառչել, ես կամ փորձում եմ վերակազմավորել համակարգը, բայց սա բավականին երկար և տխուր է:
Հենց այն, ինչին ես հասնում եմ:
Եթե ինչ-որ մեկը, ինչպես ես, սիրում է փորձարկել համակարգը և հոգնել է ամեն անգամ այն վերականգնելուց, ապա ահա ձեզ համար մի տարբերակ, թե ինչպես ես ինքս լուծեցի այս խնդիրը: Ես կանցնեմ կատվի տակով։
Ինչպես կամ սովորական հեծանիվ:
Կետ 1. LiveCD
Post factum, մենք ելնում ենք նրանից, որ սկավառակը բաժանված է 2 բաժանման՝ /boot ֆորմատավորված ext4-ով և / ձևաչափված btrfs-ով:Grub 2-ը գրված է սկավառակի MBR-ում։
Ըստ այդմ, առաջին պարբերությունը.
Անձնական սովորություններից և նկատառումներից ելնելով, շատ ավելի հեշտ է համակարգը վերականգնել գրաֆիկական ինտերֆեյսից, քան հիանալ սև էկրանով և երբեմն առանց ինտերնետ մուտք գործելու, հիշել և հրամաններ սահմանել: Ոչ, ես չեմ կարծում, որ մխիթարիչը չար է, ես սիրում եմ կոնսոլը, բայց ամեն դեպքում, գրաֆիկական ինտերֆեյսից այն ավելի հաճելի է:
Գործել առաջին
Գաղափարը նոր չէ, խոստովանում եմ, որ ինչ-որ տեղ հայտնվել է Habré-ում, բայց ես չեմ գտել հղումը, ուստի ներողություն եմ խնդրում հրապարակման աղբյուրից։Պատճենեք ցանկալի Live դիստրոյի պատկերը /boot պանակում
sudo cp /media/timofey/boot/grub/ISO/Linux/Ubuntu/ubuntu-12.10-desktop-amd64.iso /boot/ubuntu-12.10-desktop-amd64.iso
/boot-ը տեղափոխվում է առանձին բաժին, ոչ թե այն պատճառով, որ ավելի լավ է, այլ այն պատճառով, որ ինձ անհայտ պատճառներով, grub 2-ի տակից btrfs գրված LiveCD-ները չեն բեռնվում:
Այժմ մենք ուղղում ենք նախնական grub 2-ի կարգավորումները, որպեսզի grub «a»-ն թարմացնելիս մենք չկորցնենք պատկերը։
sudo nano /etc/grub.d/40_custom
Եվ այսպիսի մի բան տեղադրեք այնտեղ՝ մեկնաբանություններից հետո.
մենյու «Ubuntu 12.10 amd64» ( set isofile=/ubuntu-12.10-desktop-amd64.iso loopback loop $isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noeject noeject (loop) )/casper/initrd.lz )
Իրականում այն կազմաձևված էր պատկերով և նմանությամբ (պաշտոնական ubuntu wiki):
/Grub2/ISOBoot
Այժմ «գրեթե» ամենակարևորը, մենք վերստեղծում ենք կազմաձևը.
sudo update-grub
Ամեն ինչ, հիմա վերաբեռնումից հետո, shift ստեղնը սեղմած պահելով, կարող ենք մինի համակարգը գործարկել ինտերնետով և GUI, անկախ հիմքում ընկած համակարգի վիճակից։
Կետ 2. Նկարներ
Կարծում եմ, որ ցանկացած մարդ, ով վաղուց ծանոթ է Linux-ին, առնվազն լսել է btrfs-ի մասին, երևի թե նա արդեն իր կարծիքն է ձևավորել։ ժամը ubuntu-ի տեղադրում btrfs-ով բաժանման վրա լռելյայն արվում է շատ խելամիտ, օգտագործվում է ենթաբաժնի մեխանիզմը, և ստեղծվում է 2 ենթաբաժին, դրանք են @ և home (որոնք ես փոխարինում եմ համապատասխանաբար / և / home), համակարգը նորից տեղադրելիս: ճիշտ է, մենք չենք կորցնի կազմաձևերը: Բայց հիմա դրա մասին չէ: Ինչպե՞ս օգտագործել այս մտահոգությունը վերջնական օգտագործողների համար: Շատ պարզ.Մի փոքր նախապատմություն.
Ի սկզբանե նախատեսված էր սկրիպտը կատարել rc.local-ի միջոցով, բայց այն չկատարվեց, այնուհետև այն իրականացվեց ամենօրյա cron-ի միջոցով, ավելի ուշ ես հաղթեցի rc.local-ին և անջատեցի snapshots to hell in cron-ը:
Սցենարի կոդը:
#!/bin/bash #Այս սկրիպտը 1.2.9 տարբերակի սկզբում ինքնաստեղծող լուսանկար ստեղծելու համար set -e DATA="$(date +%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 ենթածավալ նկար ./@ ."/snapshots/$DATA /@_$(DATA)/" btrfs subvolume snapshot ./@home ."/snapshots/$DATA/@home_$(DATA)/" [! -f ./snapshots/snapshots.log ] && հպեք ./snapshots/ snapshots.log chmod 777 ./snapshots/snapshots.log echo on_startup_$(ամսաթիվ +%X_%x) >> ./snapshots/snapshots.log umount -l "/tmp/$DATA/" && sudo rmdir "/tmp/ $DATA/" )
Այն գտնվում է /etc/btrfs_snapshot_onstartup հասցեում
Ավելացրեք այն /etc/rc.local-ին և կատարման թույլտվություններ տվեք երկու ֆայլերին sudo chmod +x «ֆայլի ուղու» միջոցով:
Կատարման գրանցումը ./snapshots/snapshots.log ֆայլում կարող է չաշխատել, այնուհետև դուք պետք է այն ձեռքով ստեղծեք արմատային իրավունքների տակ: Վերագործարկումից հետո նա ինքը կստանա անհրաժեշտ իրավունքները։
Ցանկացած ժամանակ մենք կարող ենք դիտել համակարգի պատկերների կարգավիճակը՝ մուտքագրելով.
cat /var/log/snapshots.log
Բոլոր snapshot-ները ավելացվում են համակարգի հետ բաժանմանը snapshots պանակում, որտեղ թղթապանակ է ստեղծվում համակարգի յուրաքանչյուր հաջող գործարկման համար:
Ոմանք կարող են ասել, որ գործարկման ժամանակ ակնթարթային լուսանկարներ անելն արդյունք չի տալիս: Ամենևին, դա արդարացնում է, մեկ օրում ես կարող եմ համակարգում մի շարք փոփոխություններ կատարել և հարյուր անգամ վերագործարկել, իսկ այլընտրանքային դեպքերում չեմ կարողանա վերադառնալ հաջող գործարկման (փաստացի) պահին, բայց. ընդամենը մեկ օր առաջ.
Ձեռքով սկսելու տարբերակ.
#!/bin/bash #Այս սկրիպտը ինքնաստեղծման snapshot #Version 1.2.8 set -e DATA=$(ամսաթիվ +%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 ենթածավալ նկար ./@ . /snapshots/$DATA/@_$(DATA)/ sudo btrfs ենթածավալ նկար ./@home ./snapshots/$DATA/@home_$(DATA)/ ############## ############################################## ## ### sudo chmod 777 ./snapshots/snapshots.log sudo echo this.hands_$(ամսաթիվ +%X_%x) >> ./snapshots/snapshots.log sudo cat ./snapshots/snapshots.log sleep 1 sudo umount - l /tmp/$DATA/ && sudo rmdir /tmp/$DATA/ ############################# ################################## sudo btrfs ֆայլային համակարգ df / #տեղեկություններ fs-ի մասին ) կարդալ ելք 0
Կետ 3. Վերականգնում
Սրա համար են փորձել, համակարգը սպանել են, ի՞նչ անել։Մենք բեռնում ենք LiveCD-ից, տեղադրում ենք համակարգի բաժանումը մեզ համար հարմար թղթապանակում:
Այնուհետև, անհրաժեշտության դեպքում, թաքցրեք կամ հեռացրեք ստանդարտ @ և տան ենթահատորները:
և բացակայողը փոխարինիր անհրաժեշտ նկարով:
Շատ դեպքերում բավական է փոխարինել @-ին։
nazarpc
Նաև լուսանկարները թույլ են տալիս ոչ միայն վերադառնալ համակարգի որոշակի վիճակ, այլև դուրս գալ դրանից ցանկալի ֆայլկամ config, որը նաև որոշակի ազատություն է տալիս անհայտ ծագման ֆայլերը ջնջելիս:
Կետ 4. Մաքրում
Snapshot-ները շատ տեղ չեն զբաղեցնում, սակայն ժամանակի ընթացքում դրանց շնորհիվ կարող են կուտակվել սկավառակի վրա։ մեծ ծավալաղբ. Ահա մի սկրիպտ, որն ինքնաբերաբար մաքրում է ակնթարթային թղթապանակները: Սա հեռացնում է համակարգի բոլոր նկարները#!/bin/bash #Version 0.0.9 set -e DATA=$(ամսաթիվ +%g%m%d%k%M%S) [ ! -d "/tmp/$DATA" ] && sudo mkdir "/tmp/$DATA" sudo mount /dev/sda1 "/tmp/$DATA" && (cd "/tmp/$DATA/snapshots/" i-ի համար * /* do sudo btrfs ենթածավալը ջնջել «$i»-ն արվել է i-ի համար * do sudo rmdir -v «$i» արել էխո մաքրում_$(ամսաթիվ +%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" ) կարդալ ելք 0
Արդյունք
Համեմատաբար արել ենք սխալ հանդուրժող համակարգ, որում մենք հնարավորություն ունենք արագ վերականգնել համակարգը ձախողումից հետո։ Միաժամանակ նվազագույն ժամանակ և ջանք ծախսելով պաշտպանական համակարգի կառուցման վրա։Իմ սեփական մտքերն այս մասին
Կարծում եմ, որ նման լուծումը դժվար թե օգտակար լինի մեծ ՏՏ կառույցներում, բայց փոքր տնային օգտագործման համար այն պետք է լինի իդեալական։Նաև լավ կլիներ ավարտել մաքրման սկրիպտը, որպեսզի այն մաքրի, օրինակ, շաբաթներից ավելի հին նկարները, և ոչ բոլոր հասանելիները, ես անկեղծորեն փորձեցի, բայց դա ինձ մոտ չստացվեց: Այնուհետև այն կարող է նաև տեղափոխվել, օրինակ, cron-ի մեջ լռելյայն, օրական մեկ անգամ գործարկելու համար, այնուհետև ներառվել btrfs-ի պաշտոնական տեղադրման սցենարի մեջ, կարծում եմ, աննշան փոփոխություններով, սա բավականին ունիվերսալ լուծում է, որը հիմնված է. ստանդարտ հատկանիշներ btrfs.
Այո, ես գիտեմ lvm-ն, բայց ինձ պետք չէ սարքաշարից աբստրակցիայի լրացուցիչ շերտ, և առանձին հատվածում նկարներ դնելը նույնպես comme il faut չէ:
UPD 1:
Շնորհակալություն օգտվողներին
btrfs(երբեմն արտասանվում է կարագ fs) նոր անվճար ֆայլային համակարգ է, որը մշակվում է Oracle-ի աջակցությամբ: Բաշխված է GPL լիցենզիայի ներքո: Չնայած դրա մշակումը դեռևս ավարտված չէ, 2009 թվականի հունվարի 9-ին ֆայլային համակարգը ինտեգրվեց Linux միջուկին և հասանելի է Debian Squueze-ում:
Չնայած Btrfs-ն ընդգրկված էր 2.6.29 միջուկում, մշակողները նշում են, որ «սկսած 2.6.31 միջուկից՝ մենք այսուհետ նախատեսում ենք միայն սկավառակի փոփոխության ձևաչափը համատեղելի դարձնել»։ Մշակողները դեռ ցանկանում են բարելավել օգտատերերի/կառավարման գործիքները՝ դրանք ավելի հարմարավետ դարձնելու համար: ստանալու համար լրացուցիչ տեղեկություն Btrfs-ի մասին՝ բաժնի հղմամբ:
Ext2/3/4-ը կարելի է վերածել Btrfs-ի (բայց ոչ հակառակը):
Կարգավիճակ
Debian Squeeze-ը և նոր տարբերակները աջակցում են Btrfs-ին:
ՀՏՀ
Ո՞ր փաթեթն է պարունակում btrfs-ի կոմունալ ծառայություններ:btrfs-գործիքներ (DebianSqueeze-ում և վերևում)
Տես նաև. Btrfs wiki FAQ
btrfs-ի հետ աշխատելու օրինակելի հրամաններ
Ֆայլային համակարգի ստեղծում.
mkfs.btrfsԿառավարեք ծավալները, ենթածավալները, լուսանկարները; ֆայլային համակարգի ամբողջականության ստուգում.
btrfsctlbtrfs ֆայլային համակարգերի սկանավորում.
btrfsctl -a btrfsctl -A /dev/sda2Պատկերների և ենթածավալների ստեղծում.
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 btrfsnapsctl -snapshot_of_default _of_new_subvol ls /mntՖայլային համակարգի ծավալի ծառերի ստուգում.
btrfsckԵլքային մետատվյալները տեքստային ձևով.
debug-tree debug-tree /dev/sda2 >& big_output_fileՑույց տալ btrfs ֆայլային համակարգերը կոշտ սկավառակի վրա.
btrfs-show /dev/sda*Defrag (լռելյայն չի պահանջվում).
# btrfs ֆայլային համակարգի ապաֆրագմենտ /mnt կամ # btrfs ֆայլային համակարգի ապաֆրագմենտ /mnt/file.isoext3 ֆայլային համակարգը btrfs-ի վերածելը
ext3 ֆայլային համակարգը կարող է վերածվել btrfs-ի և հետագայում աշխատել դրա հետ որպես նոր ֆայլային համակարգ: Ավելին, սկզբնական ext3 ֆայլային համակարգի վիճակը հասանելի կլինի ավելի ուշ:
# Միշտ գործարկեք fsck առաջինը %# fsck.ext3 -f /dev/xxx # Convert from Ext3->Btrfs %# btrfs-convert /dev/xxx # Տեղադրեք ստացված Btrfs ֆայլային համակարգը %# mount -t btrfs /dev/xxx /btrfs # Տեղադրեք ext3 snapshot %# mount -t btrfs -o subvol=ext2_saved /dev/xxx /ext2_saved # Loopback տեղադրեք պատկերի ֆայլը %# mount -t ext3 -o հանգույց,ro /ext2_saved/image /ext3Այժմ /ext3 գրացուցակը ցույց է տալիս բնօրինակ ֆայլային համակարգի վիճակը:
Ապամոնտաժումը տեղի է ունենում հակառակ հերթականությամբ.
%# umount /ext3 %# umount /ext2_saved %# umount /btrfsԴուք կարող եք վերադառնալ ext3 ֆայլային համակարգ և կորցնել ձեր փոփոխությունները.
%# btrfs-convert -r /dev/xxxԿամ կարող եք մնալ btrfs-ում և ջնջել պահպանված ext3 ֆայլային համակարգի պատկերը.
%# rm /ext2_saved/imageՆշում:Նոր ֆայլային համակարգը փոխակերպումից հետո երբեմն ունենում է շատ մեծ մետատվյալների չափ:
Դիտել մետատվյալների չափը՝
# btrfs ֆայլային համակարգ df /mnt/data1tb/Նորմալացնել դրանց չափերը.
btrfs fi հաշվեկշիռ /mnt/btrfsԿարդացեք ավելին. Փոխակերպում ext3-ից (անգլերեն) և ext3fs-ի փոխարկում btrfs (ռուսերեն)
Ֆայլային համակարգի և բաժանմունքների չափափոխում
Btrfs-ի համար հասանելի է ֆայլային համակարգի առցանց չափափոխում (օնլայն): Նախ անհրաժեշտ է տեղադրել ցանկալի միջնորմը.
# mount -t btrfs /dev/xxx /mnt2 ԳԲ ավելացում.
# btrfs ֆայլային համակարգի չափափոխում +2G /mnt կամ # btrfsctl -r +2g /mntՓոքրացում 4 ԳԲ-ով.
# btrfs ֆայլային համակարգի չափափոխում -4g /mnt կամ # btrfsctl -r -4g /mntՍահմանեք չափը 20 ԳԲ ֆայլային համակարգի՝
# btrfsctl -r 20g /mnt կամ # btrfs ֆայլային համակարգի չափափոխում 20g /mntՕգտագործելով ամբողջ ազատ տարածությունը.
# btrfs ֆայլային համակարգի չափափոխել max /mnt կամ # btrfsctl -r max /mntՎերոնշյալ հրամանները վավեր են միայն ֆայլային համակարգի համար: Բաժանման չափը փոխելու համար դուք պետք է օգտագործեք այլ կոմունալ ծառայություններ, ինչպիսիք են fdisk-ը: Դիտարկենք բաժանումը 4 ԳԲ-ով կրճատելու օրինակ: Տեղադրեք և կրճատեք բաժանումը.
# mount -t btrfs /dev/xxx /mnt # btrfsctl -r -4g /mntԱյժմ ապամոնտաժեք բաժանումը և օգտագործեք fdisk:
# umount / mnt fdisk / dev / xxx # որտեղ dev / xxx-ը մեզ անհրաժեշտ միջնորմով կոշտ սկավառակն է