วิธีการแบ่งพาร์ติชันแฟลชไดรฟ์ usb อย่างถูกต้องและระบบไฟล์ใดให้เลือกเมื่อพิจารณาระดับการสึกหรอ


13

ปัญหาสองประการ ข้อแรก: วิธีการแบ่งพาร์ติชันแฟลชไดรฟ์?

ฉันไม่จำเป็นต้องทำเช่นนี้ แต่ฉันไม่แน่ใจว่าพาร์ติชันของฉันถูกจัดตำแหน่งอย่างถูกต้องเนื่องจากฉันถูกบังคับให้ลบและสร้างตารางพาร์ทิชันใหม่หลังจาก gparted บ่นเมื่อฉันพยายามฟอร์แมตไดรฟ์จาก FAT เป็น ext4

คำตอบที่ไร้เดียงสาคือการพูดว่า "เพียงแค่ใช้ค่าเริ่มต้นและทุกอย่างจะเป็นไร" อย่างไรก็ตามหากคุณอ่านลิงก์ต่อไปนี้คุณจะรู้ว่าสิ่งต่าง ๆ นั้นไม่ง่าย: https://lwn.net/Articles/428584/และ http://linux-howto-guide.blogspot.com/2009/10/increase- ยูเอสบีแฟลชไดรฟ์เขียน speed.html

จากนั้นยังมีปัญหาเรื่องกระบอกสูบหัวและเซกเตอร์ ปัจจุบันฉันได้รับสิ่งนี้:

$sfdisk -l -uM  /dev/sdd
Disk /dev/sdd: 30147 cylinders, 64 heads, 32 sectors/track
Warning: The partition table looks like it was made
   for C/H/S=*/255/63 (instead of 30147/64/32).
For this listing I'll assume that geometry.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start   End    MiB    #blocks   Id  System
/dev/sdd1         1  30146  30146   30869504   83  Linux

$fdisk -l /dev/sdd
Disk /dev/sdd: 31.6 GB, 31611420672 bytes
255 heads, 63 sectors/track, 3843 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00010c28

ดังนั้นจากความเข้าใจปัจจุบันของฉันฉันควรจัดพาร์ทิชันที่ 4 MiB (ปัจจุบันอยู่ที่ 1 MiB) แต่ฉันยังไม่รู้วิธีตั้งค่าหัวและส่วนต่างๆอย่างเหมาะสมสำหรับอุปกรณ์ของฉัน

ปัญหาที่สอง: ระบบไฟล์

จากมาตรฐานที่ฉันเห็น ext4 ให้ประสิทธิภาพที่ดีที่สุดอย่างไรก็ตามมีปัญหาเรื่องการปรับระดับการสึกหรอ ฉันจะรู้ได้อย่างไรว่าไมโครคอนโทรลเลอร์ของ Transcend JetFlash 700 ของฉันมีการปรับระดับการสึกหรอ หรือฉันจะฆ่าไดรฟ์ของฉันเร็วขึ้น?

ฉันเห็นโพสต์บนเว็บมากมายบอกว่าไม่ต้องกังวลว่าไดรฟ์รุ่นใหม่จะดูแลสิ่งนั้นอยู่แล้ว แต่ฉันไม่เคยเห็นหลักฐานสำรองชิ้นใดเลยและในบางครั้งผู้คนเริ่มผสม SSD กับเทคโนโลยีแฟลชไดรฟ์ USB ตัวเลือกที่ปลอดภัยจะไปสำหรับ ext2 แต่การทดสอบที่จริงจังที่ฉันแสดงมีประสิทธิภาพที่น่ากลัว !!!

ค่าเหล่านี้มาจากสถานการณ์จริงไม่ใช่การทดสอบสังเคราะห์:

42 files: 3,429,415,284 bytes copied to flash drive
original fat32: 15.1 MiB/s
ext4 after new partition table: 10.2 MiB/s
ext2 after new partition table:  1.9 MiB/s

โปรดอ่านลิงค์ที่ฉันโพสต์ด้านบนก่อนที่จะตอบ ฉันจะสนใจคำตอบที่สำรองไว้พร้อมกับข้อมูลอ้างอิงเนื่องจากมีการพูดและพูดซ้ำหลายครั้ง แต่ก็ไม่มีข้อเท็จจริง

ขอบคุณสำหรับความช่วยเหลือ.


"อย่างไรก็ตามมีปัญหาเรื่องการปรับระดับการสึกหรอ" - คุณไม่มีทางเลือกในเรื่องนี้ แฟลชไดรฟ์ USB หรือการ์ด SD ที่คุณซื้ออาจเป็นงานที่น่าพึงพอใจในการปรับระดับการสึกหรอหรือไม่ คุณไม่สามารถ / ไม่ควรใช้ระบบไฟล์ที่มีการปรับระดับการสึกหรอ (เช่น JFFS2) และคุณไม่สามารถติดตั้งการจัดการปริมาณ UBI (คุณจะต้องติดตั้ง MTD ก่อน แต่สำหรับอุปกรณ์ Flash ดิบ) ดังนั้นคุณจะติดอยู่กับการพึ่งพาตัวควบคุมที่ฝังตัว
ขี้เลื่อย

คำตอบ:


8

ไม่ต้องกังวลเกี่ยวกับกระบอกสูบหัวและเซกเตอร์และทำงานกับเซกเตอร์เท่านั้น วิธีที่ง่ายที่สุดในการจัดระบบไฟล์คือการไม่มีตารางพาร์ติชัน (เช่นสร้างระบบไฟล์/dev/sdXโดยตรง) ระบบลีนุกซ์ส่วนใหญ่จะจัดการเรื่องนี้ได้ดี, แต่ Windows จะออกนอกลู่นอกทางและคุณจะไม่สามารถบูตได้ หากคุณต้องการตารางพาร์ติชันให้คำนวณจำนวนเซ็กเตอร์ 512 ไบต์ที่สร้างบล็อกการลบ บล็อกการลบมีขนาดประมาณ 128-512KiB ดังนั้นหากคุณไม่สามารถทราบได้ว่าแฟลชไดรฟ์ของคุณใช้อะไรกับ 1024 ส่วน ตรวจสอบให้แน่ใจว่าพาร์ติชันเริ่มต้นด้วยตัวเลขหลายตัว

คุณต้องการบอก ext2 / 3/4 เกี่ยวกับขนาดบล็อกลบเพื่อให้สามารถหลีกเลี่ยงการแก้ไขบล็อกโดยไม่จำเป็น ตั้งค่าทั้งสองstrideและstripe-widthเป็นจำนวนบล็อกระบบไฟล์ที่ประกอบขึ้นเป็นบล็อกลบดังนั้นการทำงานกับบล็อกลบ 512KiB จะใช้สิ่งต่อไปนี้:

mkfs.ext4 -b 4096 -E stride=128,stripe-width=128

ในแง่ของประสิทธิภาพการไม่มีวารสารควรปรับปรุงประสิทธิภาพ (แต่เพิ่มโอกาสของข้อมูลเสียหายหากการดำเนินการถูกขัดจังหวะ) อย่างไรก็ตาม extents ของ ext4 ควรปรับปรุงประสิทธิภาพเนื่องจากข้อมูลเมตาที่น้อยลงต้องถูกแก้ไขสำหรับไฟล์ขนาดใหญ่ ฉันอาจจะใช้ ext4 กับวารสารปิดการใช้งาน:

tune2fs -O ^has_journal

คุณสามารถใช้cat /proc/mtdเพื่อค้นหาขนาดบล็อกที่ถูกลบสำหรับอุปกรณ์แฟลชที่เชื่อมต่อ
Tomalak

แฟลชไดรฟ์ที่ไม่มีตารางพาร์ติชันควรทำงานได้ดีบน Windows ตราบใดที่ระบบไฟล์ได้รับการสนับสนุน Pendrives มักจะไม่มีตารางพาร์ทิชันออกมาจากกล่องและพวกเขาทำงานได้ดี
gronostaj

การเพิ่มประสิทธิภาพ FS ใน SD การ์ดสำหรับ Linux / Fedora บน Dreamplugแสดงให้เห็นว่าวิธีการที่จะให้ ext4 "รู้ว่า" ลบบล็อกขนาดและการตั้งค่าของขนาดบล็อกและ“ก้าว”มูลค่าตาม นอกจากนี้ฉันเชื่อว่า / proc / mtd ไม่เกี่ยวข้องที่นี่เนื่องจากมันมีให้เฉพาะกับอุปกรณ์แฟลชแบบดิบตามที่ขี้เลื่อยกล่าวไม่ใช่สำหรับอุปกรณ์หน่วยความจำแฟลช SD / stick
tuk0z

พยายามว่ามันเป็นคำแนะนำที่แย่มาก อย่าใช้พารามิเตอร์เหล่านั้นกับแฟลชไดรฟ์ USB blogofterje.wordpress.com/2012/01/14/optimizing-fs-on-sd-card - ผู้ชายคนนี้มีพารามิเตอร์ที่ดีกว่า แต่ก็ยังดีกว่าเล็กน้อยถ้าใช้มากกว่าที่ gparted ใช้ตามค่าเริ่มต้น
Zdenek

นั่นคือลิงก์เดียวกับที่ฉันให้ในเดือนกันยายน ^^ ถูกต้องเกี่ยวกับ AFAIK ที่แยกส่วน / Gparted
tuk0z

4

ทุกวันนี้เครื่องมือแบ่งพาร์ติชัน Linux และระบบไฟล์ส่วนใหญ่เริ่มต้นจากค่าที่จัดเรียงข้อมูลในขอบเขต 4K และแม้กระทั่งจะใช้ขนาดบล็อกพื้นฐานหากดิสก์ถูกเปิดเผยเพื่อให้สิ่งต่าง ๆ ค่อนข้างไม่ดีเท่าในบทความ LWN:

TLDR; เมื่อใช้ดิสทริบิวเตอร์ distro Linux ที่ทันสมัย ​​(บอกว่า 2013 หรือใหม่กว่า) กับเครื่องมือรุ่นล่าสุดเพื่อสร้างพาร์ติชันและระบบไฟล์ของคุณให้ดีขึ้น (แต่ไม่สมบูรณ์แบบ) การจัดตำแหน่งจะเกิดขึ้นโดยอัตโนมัติ ดูแลด้วย - ค่าที่ดีที่สุดสำหรับการ์ด SD อาจแตกต่างจากการ์ด USB (ฉันเชื่อว่า Transcend JetFlash ของคุณคือ USB stick ไม่ใช่การ์ด SD) คุณจะต้องทำการเปรียบเทียบเพื่อลบขนาดบล็อกที่แท้จริงบนแฟลชราคาถูก ...


1

นอกจากนี้ใน fstab ของคุณอย่าลืมใช้ตัวเลือกเมาท์ "noatime" เพื่อหลีกเลี่ยงการเขียนที่ไม่จำเป็นทุกครั้งที่มีการเข้าถึงไฟล์


ยังคงเป็นความจริงมาจนถึงทุกวันนี้และสิ่งนี้เตือนฉันว่าตัวเลือกนี้หายไป XD Thx
HypeWolf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.