Bagaimana cara mempartisi flash drive usb dengan benar dan sistem file mana yang harus dipilih dengan mempertimbangkan pemakaian leveling?

13

Dua masalah. Yang pertama: bagaimana cara mempartisi flash drive?

Saya seharusnya tidak perlu melakukan ini, tapi saya tidak lagi yakin apakah partisi saya benar selaras karena saya terpaksa menghapus dan membuat tabel partisi baru setelah gparted mengeluh ketika saya mencoba memformat drive dari FAT ke ext4.

Jawaban naif adalah mengatakan "cukup gunakan default dan semuanya akan baik-baik saja". Namun, jika Anda membaca tautan berikut ini, Anda akan tahu segalanya tidak sesederhana itu: https://lwn.net/Articles/428584/ dan http://linux-howto-guide.blogspot.com/2009/10/increase- usb-flash-drive-write-speed.html

Lalu ada juga masalah silinder, kepala dan sektor. Saat ini saya mendapatkan ini:

$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

Jadi dari pemahaman saya saat ini saya harus menyelaraskan partisi pada 4 MiB (saat ini pada 1 MiB). Tapi saya masih tidak tahu cara mengatur kepala dan sektor dengan benar untuk perangkat saya.

Masalah kedua: sistem file.

Dari tolok ukur yang saya lihat, ext4 memberikan kinerja terbaik, namun ada masalah leveling pakai. Bagaimana saya bisa tahu bahwa mikrokontroler Transcend JetFlash 700 saya menyediakan untuk meratakan keausan? Atau apakah saya hanya akan membunuh drive saya lebih cepat?

Saya telah melihat banyak posting di web yang mengatakan jangan khawatir drive yang lebih baru sudah mengurusnya. Tapi saya belum pernah melihat satu pun bukti yang didukung itu dan pada titik tertentu orang mulai mencampur SSD dengan teknologi USB flash drive. Opsi yang aman adalah menggunakan ext2, namun tes serius yang saya lakukan menunjukkan kinerja yang mengerikan !!!

Nilai-nilai ini dari skenario nyata dan bukan tes sintetik:

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

Harap baca tautan yang saya posting di atas sebelum menjawab. Saya juga akan tertarik pada jawaban yang didukung dengan beberapa referensi karena banyak yang dikatakan dan dikatakan kembali tetapi kemudian kekurangan fakta.

Terima kasih atas bantuannya.

acak1
sumber
"Namun ada masalah leveling pakai" - Anda benar-benar tidak punya pilihan dalam masalah ini. Baik USB Flash drive atau SDcard yang Anda beli melakukan pekerjaan level-wear yang memuaskan atau tidak. Anda tidak dapat / tidak seharusnya menggunakan sistem file yang melakukan level-wear (mis. JFFS2). Dan Anda tidak dapat menginstal manajemen volume UBI (Anda harus menginstal MTD terlebih dahulu, tetapi itu untuk perangkat Flash mentah). Jadi, Anda terjebak dengan mengandalkan pengontrol tertanam.
serbuk kayu

Jawaban:

8

Jangan khawatir tentang silinder, kepala, dan sektor dan hanya pernah bekerja dengan sektor. Cara termudah untuk menyelaraskan sistem file adalah dengan tidak memiliki tabel partisi (yaitu membuat sistem file /dev/sdXsecara langsung). Sebagian besar sistem Linux akan menangani ini dengan baik, tetapi Windows akan panik dan Anda juga tidak akan dapat membuatnya bisa di-boot. Jika Anda membutuhkan tabel partisi, tentukan berapa banyak sektor 512 byte yang membuat blok hapus. Hapus blok sekitar 128-512KiB jadi jika Anda tidak dapat mengetahui apa yang menggunakan flash drive Anda dengan 1024 sektor. Pastikan bahwa partisi dimulai pada kelipatan angka ini.

Anda juga ingin memberi tahu ext2 / 3/4 tentang ukuran blok hapus sehingga dapat menghindari memodifikasi blok yang tidak perlu. Setel baik stridedan stripe-widthke jumlah blok sistem file yang membentuk blok hapus, jadi bekerja pada blok penghapusan 512KiB gunakan yang berikut ini:

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

Dalam hal kinerja, tidak memiliki jurnal harus meningkatkan kinerja (tetapi meningkatkan kemungkinan korupsi data jika operasi terganggu). Namun, luasan ext4 harus meningkatkan kinerja karena metadata yang lebih sedikit perlu dimodifikasi untuk file besar. Saya mungkin akan menggunakan ext4 dengan jurnal dinonaktifkan:

tune2fs -O ^has_journal
Mgorven
sumber
Anda dapat menggunakan cat /proc/mtduntuk mengetahui menghapus ukuran blok untuk perangkat flash yang terpasang.
Tomalak
Flash drive tanpa tabel partisi akan berfungsi dengan baik di Windows selama sistem file didukung. Pendrives biasanya tidak memiliki tabel partisi di luar kotak dan berfungsi dengan baik.
gronostaj
Mengoptimalkan fs pada kartu-sd untuk Linux / Fedora di Dreamplug menunjukkan bagaimana membiarkan ext4 "mengetahui" ukuran blok hapus dan mengatur ukuran blok dan nilai "langkah" sesuai. Saya juga percaya / proc / mtd tidak relevan di sini karena hanya tersedia untuk perangkat flash mentah seperti serbuk gergaji, bukan untuk perangkat memori flash SD / stick.
tuk0z
Mencoba itu, itu adalah saran yang sangat buruk. Jangan gunakan parameter itu dengan USB flash drive. blogofterje.wordpress.com/2012/01/14/optimizing-fs-on-sd-card - orang ini memiliki parameter yang lebih baik, tapi itu masih sedikit lebih baik, jika sama sekali, daripada apa yang digunakan oleh gparted secara default.
Zdenek
Itu tautan yang sama yang saya berikan pada bulan September ^^ Benar tentang parted / Gparted AFAIK.
tuk0z
4

Saat ini sebagian besar Linux pembuatan partisi dan alat sistem file default untuk nilai-nilai yang menyelaraskan data pada batas 4K dan bahkan akan menggunakan ukuran blok yang mendasari jika disk mengeksposnya sehingga hal-hal yang tidak seburuk dalam artikel LWN:

TLDR; Saat menggunakan distro Linux modern (katakanlah 2013 atau lebih baru) dengan versi terbaru dari alat untuk membuat partisi dan sistem file Anda lebih baik (tetapi tidak sempurna) penyelarasan akan terjadi secara otomatis. Juga berhati-hatilah - nilai terbaik untuk kartu SD mungkin berbeda dengan untuk tongkat USB (saya percaya Transcend JetFlash Anda adalah tongkat USB bukan kartu SD). Anda harus melakukan tolok ukur untuk menyimpulkan ukuran blok hapus yang benar yang mendasari pada flash murah ...

Segera
sumber
1

Juga, di fstab Anda, pastikan untuk menggunakan opsi mount "noatime" untuk menghindari penulisan yang tidak perlu setiap kali file diakses.

kepala dokumen
sumber
Masih berlaku sampai hari ini dan ini mengingatkan saya bahwa opsi ini hilang XD Thx
HypeWolf