เมื่อทำการบู๊ต fsck บางครั้งจะรายงานการสละสิทธิ์สำหรับดิสก์: "5.3% ไม่ติดกัน"
ฉันจะรับข้อมูลนี้ด้วยตนเองได้อย่างไร มีการร้องขอ fsck เฉพาะหรือไม่
เมื่อทำการบู๊ต fsck บางครั้งจะรายงานการสละสิทธิ์สำหรับดิสก์: "5.3% ไม่ติดกัน"
ฉันจะรับข้อมูลนี้ด้วยตนเองได้อย่างไร มีการร้องขอ fsck เฉพาะหรือไม่
คำตอบ:
คุณสามารถรัน fsck.ext2 อย่างปลอดภัยบนระบบไฟล์ ext2 ext3 หรือ ext4 แม้ว่าจะถูกเมานต์แบบนี้
sudo fsck.ext2 -fn /dev/sdXY
หากไดรฟ์ติดตั้งอยู่จะส่งผลให้เกิดข้อผิดพลาดจำนวนมาก แต่อาร์กิวเมนต์ -n จะบอกให้ไม่แตะต้องไดรฟ์
$ sudo fsck.ext2 -fn /dev/sda1
e2fsck 1.42 (29-Nov-2011)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Ubuntu_Rescue: 291595/1222992 files (0.2% non-contiguous), 1927790/4882432 blocks
sudo tune2fs -C 16000 /dev/sda1
และรีบูต
ระบบไฟล์ตระกูล ext ที่ทันสมัยคำนึงถึงความสมดุลและความต่อเนื่องในการพิจารณาเมื่อทำการจัดสรรไฟล์ ในการปรับสมดุล ext3 และ ext4 โดยทั่วไปแล้วจะได้รับการดูแลโดยใช้รายการบันทึกตามลำดับและใน ext4 โดยเฉพาะโดยการจัดสรร extents ระบบไฟล์ล่วงหน้าเพื่อเพิ่มบล็อกที่ต่อเนื่องกัน การไล่ระดับแฟรกเมนต์ที่ต่ำกว่า 20% อาจไม่คุ้มค่ากับเวลาของคุณโดยเฉพาะหากระบบของคุณกำลังเข้าถึงไฟล์บางไฟล์ซ้ำ ๆ ฉันขอแนะนำให้ใช้กลยุทธ์เหล่านี้เพื่อเพิ่มความเร็วในการอ่านสำหรับระบบดิสก์เดียว:
เพิ่ม ram: นี่เป็นการเพิ่มแคชของระบบไฟล์
เพิ่มขนาดบล็อก: โดยการเลื่อนจาก 1k เป็นขนาดบล็อก 4k คุณจะได้รับประสิทธิภาพที่ดีขึ้นในการอ่านไฟล์ใกล้หรือใหญ่กว่าขนาดบล็อกของคุณ
หากคุณเชื่องช้าคุณสามารถจัดระเบียบไฟล์ขนาดใหญ่และไฟล์ขนาดเล็กเป็นพาร์ติชั่นตามขนาดบล็อกคุณอาจต้องการทำสิ่งนี้หากคุณจัดเก็บรูปภาพวิดีโอและซอร์สโค้ดในไดเรกทอรีแยกต่างหาก
เพิ่มการตั้งค่าล่วงหน้าของคุณโดยใช้ hdparm และ / หรือยูทิลิตี้โหมดแล็ปท็อป
สำรองและกู้คืนระบบไฟล์ของคุณในแบบเชิงเส้นเช่น tar
หากคุณมีดิสก์หลายตัวและใช้แถบการจู่โจมและ / หรือ LVM คุณจะต้องพิจารณาปัจจัยอื่นเช่นขนาดสไทรพ์
ใช่มีการfsck
เรียกเฉพาะ(เป็น root หรือ sudo):
$ fsck /dev/sdXY
แทนที่ X และ Y ด้วยพารามิเตอร์ที่ถูกต้องสำหรับเคสของคุณ (เช่น/dev/sda1
)
อย่าเรียกใช้สิ่งนี้บนพาร์ทิชันที่ติดตั้ง! มันสามารถสร้างความเสียหายอย่างร้ายแรงต่อระบบไฟล์ของคุณ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับลินุกซ์และจัดเรียงข้อมูลให้ดูคำตอบของฉันที่นี่
หากคุณไม่จำเป็นต้องเรียกใช้ fsck เป็นพิเศษ แต่เพียงต้องการตรวจสอบการแตกแฟรกเมนต์ของไดรฟ์สคริปต์ต่อไปนี้ (ที่นำมาจากที่นี่ ) ควรทำเคล็ดลับ:
#!/usr/bin/perl -w
#this script search for frag on a fs
use strict;
#number of files
my $files = 0;
#number of fragment
my $fragments = 0;
#number of fragmented files
my $fragfiles = 0;
#search fs for all file
open (FILES, '-|', "find '$ARGV[0]' -xdev -type f -print0");
$/ = "\0";
while (defined (my $file = <FILES>)) {
open (FRAG, "-|", "filefrag", $file);
my $res = <FRAG>;
if ($res =~ m/.*:\s+(\d+) extents? found/) {
my $fragment = $1;
$fragments += $fragment;
if ($fragment > 1) {
$fragfiles++;
}
$files++;
} else {
print ("$res : not understand for $file.\n");
}
close (FRAG);
}
close (FILES);
print ( $fragfiles / $files * 100 . "% non contiguous files, " . $fragments / $files . " average fragments.\n");
จากนั้นคุณสามารถเรียกใช้ในไดเรกทอรี (หรือจุดเชื่อมต่อ) ที่มีปัญหา:
$ frag_check.pl $HOME/
1.32410691664555% non contiguous files, 1.05380668862427 average fragments.
คุณสามารถใช้เครื่องมือเช่น e2defrag เพื่อรับข้อมูลนี้
โปรดทราบว่าเนื่องจากลักษณะของระบบไฟล์ Linux การจัดเรียงข้อมูลจึงไม่จำเป็น
e4defrag -c
แต่ไม่ได้ผล
-c
ตัวเลือกเป็นอาร์กิวเมนต์สุดท้าย และ ... "ไม่ทำงาน"? คุณได้รับข้อผิดพลาดอะไร