სისადმინის ბლოგი

Icon

Übermensch

ვზრდით ext3/ext4 დანაყოფებს (partition)

ვიზუალური დანაყოფები

ტუქსიLinux ოპერაციულ სისტემებში შესაძლებელია partition-ის შემდგომში “დანაყოფი” (დროა ქართულადაც ვიცოდეთ ამ სიტყვების მნიშვნელობები :z ) მოხერხებული-ადვილი-გრაფიკული მართვა, მაგ. ზომის გაზრდა/შემცირება, parttition tables შექმნა, შემოწმება შეცდომებზე და სხვა მრავალი სასარგებლო ოპერაციის გაკეთება commandline-ის გარეშე, მააგრამ linux ჯერ-ჯერობით რჩება სერვერ ოპერაციულ სისტემად და შესაბამისად ხშირად სერვერებზე გრაფიკული გარსი არ არის გაშვებული (99.99% არც არის საჭირო).

პოსტი მოიცავსპოსტი მოიცავს ნებისმიერი linux ოპერაციულ სისტემის ქვეშ მყოფი ext3/ext4 დისკების გაზრდა/შემცირებას, რომლებიც არ არის LVM/LVM2 ან RAID შემადგენლობაში და არის სტანდარტული partittion-ები.

გაფრთხილებაგაფრთხილება: აუცილებლად “<<დაა-backup-ეთ>>” პაციენტი. ბექაფის გარეშე აღნიშნული ოპერაციის ჩატარებამ შეიძლება მიგვიყვანის სავალალო შედეგებამდე. ბექაფის არსებობის შემთხვევაში თამამად გადავდივართ შემდეგ საფეხურებზე.

გაფრთხილებაპრობლემა: გვაქ ლინუქს სერვერი რომელზეც გადაგვევსო /var (თქვენს შემთხვევაში ეს შეიძლება იყოს ნებისმიერი /,  /opt, /u01, /xxx, ან /home) დანაყოფი რომელიც დამონტაჟებულია (არ დაიბნეთ mounts ვგულისხმობ) /dev/sdd1 დისკზე, რომლის მოცულობა არის 30 გბ. მაგ: /dev/sdd1 /var

საჭირო ინსტრუმენტებისაჭირო ინსტრუმენტები: fdisk, tune2fs, e2fsck, resize2fs, fsck (სტანდარტულად ეს ბრძანებები ნაგულისხმევად განისვენებს /sbin დირექტორიაში ყველა linux დისტრიბუტივზე.)

დისკის მოცულობა შეიძლება გავზარდოთ არსებული დანაყოფის შემცირების ან საერთოდ წაშლის ხარჯზე, მაგრამ ვირტუალიზაციის შემთხვევაში ეს გაცილებით მარტივია, უბრალოდ უმატებთ სასურველ ზომას. დავუშვათ მოუმატეთ სასურველი ზომა არსებულ დისკს, (თუ რა გზით ეს ეს ინდივიდუალურია) იმისთვის რომ ოპერაციულმა სისტემამ აღიქვას ახალი ზომა, ამისთვის საჭიროა შემდეგი ცვლილებები:

1.   ვაკეთებთ დისკის დემონტაჟს, (unmount partition),

umount /dev/sdd1

ხშირია შემთხვევები როდესაც დისკი დაკავებულია და დემონტაჟი წარუმატებლად სრულდება, გამოდის ამდაგვარი შეტყობინება: “Device or resource busy” ასეთ შემთხვევაში შესაძლებელია -l სვიჩის გამოყენება და დემონტაჟის ძალებით გაკეთება (force).

umount -l /dev/sdd1

ყურადღება! არავითარ შემთხვევაში არ შეეცადოთ იმ დანაყოფის დემონტაჟს რომელზეც წერს მონაცემთა ბაზები (MySQL, Oracle, PostgreSQL, etc). ამ შემთხვევაში თქვენ შეიძლება დაკარგოთ ინფორმაცია, ან დააზიანოთ მონაცემთა ბაზის სტრუქტურა (მონაცემთა ბაზებს შეუძლიათ data-ფაილის ექსკლუზიურ რეჟიმში გახსნა/წაკითხვა, იყენებენ სისტემურ გამოძახებებს (syscall) მაგალითთად fopen() ფუნქციას პარამეტრად გადეცემა O_EXCL და ფაილი გაიხსნება ექსკლუზიაურად. ექსკლუზიური გახნს კი იმას ნიშნავს რომ სანამ ფაილი არ “დაიხურება” fclose(), დანაყოფის დემონტაჟს აზრი არ ააქვს, მოხდება მხოლოდ “ფსევდო დემონტაჟი” სინამდვილეში ფაილური სისტემა კვლავ დაკავებული იქნება I/O ოპერაციებით). ჩვენ არ გვაწყობს არანაირი I/O აქტივობა ჩვენს დიკზე, როდესაც დავიწყებთ მისი მოცულობის გაზრდა/შემცირებას, ამიტომ საკუეთესო გამოსავალი იქნება თუ ჩვენ ჩავიტვირთებით singe-user რეჟიმში (ამ დროს არ არსებობს ქსელი, არ იტვირთება დემონები/სერვისები და სისტემაში შესასვლედად არ არის საჭირო ავტორიზაცია). თუ გვინდა root დანაყოფის ( / ) გაზრდა ამ შემთხვევაში ვიტვირთებით რომელიმე linux-based ჩამტვირთავი დისკიდან (რადგანაც ჩართულ სსისტემას თავის თავის დემონტაჟს ვერ მოვთხოვთ, არა ეს შესაძელბელეია, მაგრამ ამ შემთხვევაში მიუწვდომელი იქნება /sbin დირექტორია და შესაბამისად საჭირო ბრძანებებს ვეღარ გამოვიძახებთ). ასეთები კი ბევრია და თავისუფლად გადავდივართ შემდეგ საფეხურზე.

2.   ვამოწმებთ ფაილური სისტემის შეცდომებზე არსებულ დანაყოფს:

fsck -n /dev/sdd1

3.   ვშლით ჟურნალს ფაილური სისტემიდან და ვაქცევთ მას მარტივ ext2 ფაილურ სისტემად (ext3/4 ფაილური სისტემების ext2-გან განსხვავებით გააჩნიათ ჟურნალირების საშუალება, მაგრამ ჟურნალირებად ფაილურ სისტემაზე ამგვარ ცვლილებებს ვერ მოვახდენთ, ამიტომ დროებით ვუთიშავთ მას ამ ფუნქციას).

tune2fs -O ^has_journal /dev/sdd1

4.   ვხსნით მთელ დისკს fdisk უტილიტით /dev/sdd  (და არა ცალკეულ დანაყოფს sdd1.)

fdisk /dev/sdd

გამოვა ინტერაქტიული მენიუ:

Command (m for help): 

4.1.   დააჭირეთ p ღილაკს, გამოიტანს ინფორმაციას დისკზე და გვაჩვენებს მის დანაყოფებს (ეს კარგი პრაქტიკაა, კიდევ ერთხელ გადახედავთ, რომ დანაყოფები არ აგერიოთ)

Command (m for help): p

4.2.   ვშლით დანაყოფს, ჩვენს შემთხვევაში ეს არის /dev/sdd1, ეს ავტომატურად მონიშნულია ამიტომ უბრალოდ დააჭირეთ d-ს და შემდეგ enter-ს) არ ინერვიულოთ ამ დროს არ წაიშლება თქვენი ინფორმაცია, უბრალოდ წაიშლება ძველი partition table.

Command (m for help): d

გამოვა შეტყობინება:

>Selected partition 1

4.3.   ვქმინით ახალ partition table’ს – n.

Command (m for help): n 

4.4.   ვირჩევთ პირველად დანაყოფს (Primary Partition).

Command (m for help): p

4.5.   Linux-ში შეგვიძლია 1 დისკზე გვქონდეს 4 პირველადი დანაყოფი, ჩვენ არ გვაქ არცერთი /dev/sdd დისკისთვის  ამიტომ ვირჩვთ 1-ს.

Command (m for help): 1

4.6.   ამის შემდეგ გამოვა ორი ინტერაქტიული კითხვა სადაც გვკითხავს პირველი და ბოლო ცილინდრის მნიშვნელობებს, ეს ნაგულისხმევი მნიშვნელობებია და ამიტომ მათ მნიშვნელობას არ ვცვლით, უბრალოდ 2-ჯერ დააჭირეთ enter-ს.

Partition number (1-4): <Enter>
Last cylinder, +cylinders or +size{K,M,G} (1-xxxx, default xxxx): <Enter>

4.7.   ჩვენ შევქმენით ახალი partition table, რომელმაც უკვე იცის თუ რა ზომის იქნება ახალი დანაყოფი (შეიცვალა ბოლო ცილინდრის მნიშვნელობა),
შევინახოთ ცვლილებები – w.

Command (m for help): w

5.   ვამოწმებთ ახალ ext2 ფაილურ სისტემას შეცდომებზე:

e2fsck -f /dev/sdd1

6.   ვზრდით/ვამცირებთ ფაილური სისტემის ზომას, resize2fs-ის საშუალებით შეგვიძლია გავზარდოთ ან შევამციროთ ფაილური სისტემის ზომა ონლაინ რეჟიმში, შეგვიძლია პარამეტრად გადავცეთ სასურველი ზომა, მაგრამ თუ ზომა მითითებული არ იქმნება ჩვენს მიერ ამ შემთხვევაში resize2fs ნაგულსხმევად აიღებს მაქსიმალურ მნიშვნელონბას partition table -დან, (ეს ჩვენ უკვე გავაკეთეთ fdisk-ის გამოყენებით), რაც ძალიან მოსახერხეხბელია.

resize2fs /dev/sdd1

7.   კვლავ ვამოწმებთ ზომაშეცვლილ დანაყოფს

fsck -n /dev/sdd1

8.   შემდეგი ბრძანებით ჩავურთავთ ჟურნალირებას და მივიღებთ ისევ სრულყოფილი ext3/4 დანაყოფს.

tune2fs -j /dev/sdd1

მყარი-დისკი

სასურველია გადავტვირთოთ OS 4-ე საფეხურის დასრულებისთანავე და შემდეგ გადავიდეთ დანარჩენ საფეხურებზე, მთლიანი პროცედურის დამთავრების შემდეგ აკრიფეთ შემდეგი ბრძანება ზომის ცვლილების სანახავად:

df -h /dev/sdd1

Category: Linux, partitioning

Tagged:

Leave a Reply

ღრუბელიზატორი

networking public key SQUID ssh attacks (1)
iptables (2)
kernel (1)
Linux (4)
Net Tools (1)
Networking (4)
partitioning (1)
revers-proxy (1)
Security (3)
Sys Tools (2)
Uncategorized (1)

WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.

ბლოგროლი