[gelöst] USB Stick - For best bootability - Schreibgeschwindigkeiten

xsid

Active member
Registriert
29 Mai 2007
Beiträge
4.621
https://thinkpad-forum.de/threads/9...ck-mit-GRUB2?p=2008500&viewfull=1#post2008500



Hallo TPler,

folgendes habe ich gefunden:

http://www.easy2boot.com/make-an-easy2boot-usb-drive/make-using-linux/

For best bootability, I strongly recommend you create a small (hidden) partition at the end of the USB drive as well.

Welchen Sinn hat die small (hidden) partition ?

Note: If possible, use RMPrepUSB and Windows to prepare your USB drive - this will give better boot compatibility over a wider range of systems.

Warum sollte Gparted den Stick nicht genauso erstellen können wie RMPrepUSB ( http://www.rmprepusb.com/ ) ?

http://www.com-magazin.de/praxis/windows/dateisysteme-erklaert-fat-exfat-ntfs-38012.html

RMPrepUSB können Schreibgeschwindigkeiten auf Flash-Speicher um bis zu 10% zu verbessern, wenn FAT32 formatiert ist, wie wenn Sie RMPrepUSB verwenden im Vergleich zu Windows-Format und die meisten anderen Format-Tools. Sie stellt Cluster in beste Position für Flash-Speicher. Wenn Sie eine Kamera SD-Karte haben, formatieren Sie sie zunächst mit RMPrepUSB als FAT32 und Fotos sollten schneller speichern.

Warum kann Steve (evtl. Entwickler von RMPrepUSB?) diese Aussage machen?
Berücksichtigt Gparted keine Cluster bei USB Flash Speicher?



MfG

xsid
 
Zuletzt bearbeitet:
auf letzteres bezüglich der geschwindigkeit, das kommt wahrscheinlich daher das bei fat 32
kein journaling berücksichtigt wird = weniger daten zum schreiben.

aber intressannt kannte ich noch nicht, danke.
 
Denk mal der Hintergrund wird das richtige Allignment sein, klingt zumindest danach.

MfG, Sebastian
 
Welchen Sinn hat die small (hidden) partition ?
Möglicherweise Wear Leveling (damit man nicht versehentlich den ganzen Stick voll macht). Ansonsten sehe ich da keinen Sinn.

WWarum sollte Gparted den Stick nicht genauso erstellen können wie RMPrepUSB ( http://www.rmprepusb.com/ ) ?
Da dürfte es keinen Unterschied geben. Beim Anlegen einer Partitionstabelle kann man nicht wirklich etwas falsch machen, erst recht nicht bei etwas, das es schon so lange gibt.

Berücksichtigt Gparted keine Cluster bei USB Flash Speicher?
Doch, gparted berücksichtigt das Alignment. Windows aber vielleicht nicht.
 
Hallo TPler,

jetzt ein Test, Lieferzustand, RMPreUSB und Gparted:

Code:
-----------------------------
-----------------------------

Lieferung von Corsair

sudo parted -l

Modell: Corsair Voyager 3.0 (scsi)
Festplatte  /dev/sdb:  16,0GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang  Ende    Größe   Typ      Dateisystem  Flags
 1      32,8kB  16,0GB  16,0GB  primary  fat32        LBA


sudo fdisk -l
                                                                                                                                                                                                              
Disk /dev/sdb: 16.0 GB, 16004415488 bytes                                                                                                                                                                                        
255 Köpfe, 63 Sektoren/Spur, 1945 Zylinder, zusammen 31258624 Sektoren                                                                                                                                                           
Einheiten = Sektoren von 1 × 512 = 512 Bytes                                                                                                                                                                                     
Sector size (logical/physical): 512 bytes / 512 bytes                                                                                                                                                                            
I/O size (minimum/optimal): 512 bytes / 512 bytes                                                                                                                                                                                
Festplattenidentifikation: 0dz3072e18                                                                                                                                                                                            
                                                                                                                                                                                                                                 
   Gerät  boot.     Anfang        Ende     Blöcke   Id  System                                                                                                                                                                   
/dev/sdb1              64    31258623    15629280    c  W95 FAT32 (LBA)   


-------------------------------
-------------------------------

rmprepusb für Partionierung genutzt:


xz@t440p:~$ sudo parted -l

Modell: Corsair Voyager 3.0 (scsi)
Festplatte  /dev/sdb:  16,0GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang  Ende    Größe   Typ      Dateisystem  Flags
 1      32,3kB  16,0GB  16,0GB  primary  fat32        boot, LBA


sudo fdisk -l
                                                                                                                                                   
                                                                                                                                                                                                                                 
Disk /dev/sdb: 16.0 GB, 16004415488 bytes                                                                                                                                                                                        
255 Köpfe, 63 Sektoren/Spur, 1945 Zylinder, zusammen 31258624 Sektoren                                                                                                                                                           
Einheiten = Sektoren von 1 × 512 = 512 Bytes                                                                                                                                                                                     
Sector size (logical/physical): 512 bytes / 512 bytes                                                                                                                                                                            
I/O size (minimum/optimal): 512 bytes / 512 bytes                                                                                                                                                                                
Festplattenidentifikation: 0d7d72b29a                                                                                                                                                                                            
                                                                                                                                                                                                                                 
   Gerät  boot.     Anfang        Ende     Blöcke   Id  System                                                                                                                                                                   
/dev/sdb1   *          63    31230359    15615148+   c  W95 FAT32 (LBA)                                                                                                                                                          
                                             
                                             
                                             
------------------------------
------------------------------

gparted für Partitionierung genutzt:

sudo parted -l

Modell: Corsair Voyager 3.0 (scsi)
Festplatte  /dev/sdb:  16,0GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang  Ende    Größe   Typ      Dateisystem  Flags
 1      1049kB  16,0GB  16,0GB  primary  fat32


sudo fdisk -l

Disk /dev/sdb: 16.0 GB, 16004415488 bytes
255 Köpfe, 63 Sektoren/Spur, 1945 Zylinder, zusammen 31258624 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0d7d72b29a

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1            2048    31258623    15628288    b  W95 FAT32


Warum setzt jedes der drei Programme (Lieferzustand, RMPrepUSB und Gparted) einen unterschiedlichen Anfang?

Welcher Anfang (Anfang 63, Anfang 64, Anfang 2048) ist der sinnvollste?



MfG

xsid

- - - Beitrag zusammengeführt - - -

Mit rmprepusb als bootfähigen USB Stick eingerichtet:

Code:
rmprepusb


sudo parted -l
                                                                                                                                                     
                                                                                                                                                                                                                                 
Modell: Corsair Voyager 3.0 (scsi)
Festplatte  /dev/sdb:  16,0GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang  Ende    Größe   Typ      Dateisystem  Flags
 1      32,3kB  16,0GB  16,0GB  primary  fat32        boot, LBA
 2      16,0GB  16,0GB  32,3kB  primary

sudo fdisk -l

Disk /dev/sdb: 16.0 GB, 16004415488 bytes
255 Köpfe, 63 Sektoren/Spur, 1945 Zylinder, zusammen 31258624 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0d68a95b08

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1   *          63    31230296    15615117    c  W95 FAT32 (LBA)
/dev/sdb2        31230297    31230359          31+  21  Unbekannt


Wozu ist hier /dev/sdb2 ?
 
Zuletzt bearbeitet:
Also ich hatte schonmal den Fall, dass eine SD-Karte, abhängig von Sektorgröße und Position des ersten Sektors extrem unterschiedliche Lese/Schreibgeschwindigkeiten lieferte. Habe die Benchmarks leider nicht mehr, aber es war da ziemlich sicher Faktor 5-10.

Fazit war damals, dass nur ausprobieren hilft, da nur der Hersteller der SD-Karte weiß wie sein Speicher aligned ist (deshalb werde ich auch nie mehr eine SD-Karte direkt neu formatieren, sondern wenn möglich die Herstellerformatierung beibehalten).

Ich schätze mal, dass USB-Sticks ähnliche Probleme haben könnten (evtl. etwas abgemildert, weil der Controller im Stick sitzt statt im Reader).
 
Früher hatten Festplatten Sektoren mit einer Größe von 512 B. Man konnte an einem beliebigen Sektor starten und musste nicht auf das Alignment achten.

Moderne Festplatten nutzen hingegen 4 KiB, manchmal auch 8 KiB große Sektoren (weil die Platten so groß geworden sind), nach außen emulieren sie aber 512 B große Sektoren. Man muss also darauf achten, dass man mit einer Partition bei einem Sektor beginnt, der sich ganz durch 8 oder 16 teilen lässt.

SSDs bzw. Flash-Speicher haben auch 4 oder 8 KiB große Pages. Es wird immer eine ganze Page geschrieben oder gelesen. Es gilt also die gleiche Bedingung wie bei modernen Festplatten. Allerdings können immer nur ganze Blöcke gelöscht werden. Ein Block besteht aus 128 oder 256 Pages (ist also zwischen 512 KiB und 2 MiB groß).

Wir haben es hier mit einem Flash-Speicher zu tun:

Anfang 63 ist ganz schlecht, denn 63*512/4096 = 7,875.
Anfang 64 wären 8 Pages. Das ist besser, berücksichtigt aber nicht die Blockgröße.
Anfang 2048 ist der Standardwert, der heute fast überall unter Linux (fdisk, gparted, LVM …) verwendet wird. Das wären dann 256 Pages, also ein oder zwei Blöcke.

Fazit: Das mitgelieferte ist möglicherweise OK (vielleicht sind es wirklich so kleine Blöcke, wobei ich das bezweifle). RMPreUSB ist absoluter Müll. Damit ist der Stick äußerst langsam und hält auch nicht besonders lange. Richtig machen es hingegen die üblichen Linux-Tools.

edit: Die zweite Partition ist unnötig.
 
Zuletzt bearbeitet:
Jetzt wieder Anfang 63 mit HP USB Storage Tool (HPUSBFW_v2.2.3.exe):

Code:
HPUSBFW_v2.2.3.exe HP USB Storage Tool:

 
sudo parted -l
                                                                                                                                                                       
                                                                                                                                                                                                                                 
Modell: Corsair Voyager 3.0 (scsi)                                                                                                                                                                                               
Festplatte  /dev/sdb:  16,0GB                                                                                                                                                                                                    
Sektorgröße (logisch/physisch): 512B/512B                                                                                                                                                                                        
Partitionstabelle: msdos

Nummer  Anfang  Ende    Größe   Typ      Dateisystem  Flags
 1      32,3kB  16,0GB  16,0GB  primary  fat32        LBA


sudo fdisk -l

Disk /dev/sdb: 16.0 GB, 16004415488 bytes
255 Köpfe, 63 Sektoren/Spur, 1945 Zylinder, zusammen 31258624 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0x00012863

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1              63    31258623    15629280+   c  W95 FAT32 (LBA)


Hallo SammyHP, bist Du dir sicher mit deinem Statement? HP könnte auf Verwandschaft hindeuten.

Anfang 64 wären 8 Pages. Das ist besser, berücksichtigt aber nicht die Blockgröße.

Warum liefert Corsair die Sticks so aus?
Wie kann ich die Blockgröße berücksichtigen lassen?

MfG

xsid
 
Zuletzt bearbeitet:
Hallo SammyHP, bist Du dir sicher mit deinem Statement? HP könnte auf Verwandschaft hindeuten.
Klar bin ich das, sonst hätte ich es nicht geschrieben. Du kannst natürlich auch selbst recherchieren, wodurch meine Aussage höchstwahrscheinlich bestätigt wird. Oder du ignorierst es einfach, dann hättest du aber nicht fragen brauchen.

Ist doch völlig egal, was dieses HP-Teil da macht. Das Problem verschwindet nicht dadurch, dass ein anderer Name draufsteht.

Warum liefert Corsair die Sticks so aus?
Weil sie es selbst nicht besser wissen? Weil die Blöcke wirklich so klein sind? Frag sie doch am besten selber.

Wie kann ich die Blockgröße berücksichtigen lassen?
Das hatte ich oben schon geschrieben:

SammysHP schrieb:
Anfang 2048 ist der Standardwert, der heute fast überall unter Linux (fdisk, gparted, LVM …) verwendet wird.
 
Hallo SammysHP,

folgendes Ergebnis, eingerichtet mit HP USB Storage Tool:

Code:
 sudo fdisk -l

Disk /dev/sdb: 16.0 GB, 16004415488 bytes
255 Köpfe, 63 Sektoren/Spur, 1945 Zylinder, zusammen 31258624 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0x00012863

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1              63    31258623    15629280+   c  W95 FAT32 (LBA)

sudo parted /dev/sdb align-check opt 1
1 nicht ausgerichtet


Eingerichtet mit Gparted:


Code:
sudo fdisk -l

Disk /dev/sdb: 16.0 GB, 16004415488 bytes
255 Köpfe, 63 Sektoren/Spur, 1945 Zylinder, zusammen 31258624 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0x00012863

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1            2048    31258623    15628288    b  W95 FAT32

sudo parted /dev/sdb align-check opt 1
1 ausgerichtet
 
Zuletzt bearbeitet:
Damit möchte ich sagen dass der Anfang 2048 richtig ist, wenn ich den USB Flash genauso sehe wie ein SSD.

http://www.easy2boot.com/make-an-easy2boot-usb-drive/make-using-linux/

Note: If possible, use RMPrepUSB and Windows to prepare your USB drive - this will give better boot compatibility over a wider range of systems.

Read more: http://www.easy2boot.com/make-an-easy2boot-usb-drive/make-using-linux/

Da wundere ich micht über die Aussage von Steve Si, den Developer von Easy2boot und RMPrepUSB.

Corsair habe ich auch um ein Statement gebeten.
Corsair hat den Anfang 64.
Anfang 2048 : Anfang 64 = 32 <---- also wird das Alignment auch ok sein.

@SammyHP
Im Grunde habe ich dein Statement nur für mich nachvollzogen und damit bestätigt.

MfG

xsid
 
Zuletzt bearbeitet:
Dann solltest du den Post vielleicht erst komplett schreiben und den zweiten Teil nicht erst später nachtragen, wenn schon jemand drauf geantwortet hat. ;)
 
Zu langsam bin ich, zu schnell seit ihr.

Das HPUSBFW_v2.2.3.exe HP USB Storage Tool ist heutzutage also keine Empfehlung mehr wert.
 
Hat du denn mal einen Benchmark mit den zwei (drei) Alignments gemacht? Dann sollte es eindeutig sein, welches das richtige ist...

Vom Gefühl her würde ich auch eher auf die Alignments mit Startblock 2^n setzten, aber schlussendlich sagt dir niemand, dass die logischen Blöcke, welche das Betriebssystem sieht, irgendetwas mit den physischen Blöcken im Speicherchip zu tun haben... Oftmals ist Block Nummer 0 nunmal nicht der erste physikalische Block im Speicher, und dann nützen Daumenregeln nichts mehr...
 
Hallo TPler,

Geschwindigkeitstest habe ich nicht gemacht.

http://www.easy2boot.com/make-an-easy2boot-usb-drive/make-and-e2b-usb-drive-using-rmprepusb/

To be able to use all features of E2B, the 3rd and 4th partition entries must be unused. e.g.

P1 Start=63 (32,256 bytes) End=2,050,729,379 (1,049,973,442,048 bytes)
P2 Start=2,050,745,440 (1,049,981,665,280 bytes) End=3,906,959,804 (2,000,363,419,648 bytes)
Note that for 'Removable' USB drives, Windows will only mount and access the first partition on the drive. Unless you are very familiar with disk partitions, etc. I suggest you do not create additional 'usable' partitions on a 'Removable' type USB drive - just tick the 'Boot as HDD (C:)' option.



Read more: http://www.easy2boot.com/make-an-easy2boot-usb-drive/make-and-e2b-usb-drive-using-rmprepusb/


Begründet sich der Anfang 63 evtl. aus den Besonderheiten von Easy2Boot? RMPrepUSB wird vom Developer für Easy2Boot empfohlen?

http://reboot.pro/topic/16783-rmprepusb-faster-fat32-write-access-on-flash-memory-drives/

I have also updated the NTFS code in v 2.1.647 now.
If NTFS is selected and no other CHS option is selected in RMPrepUSB (e.g. ZIP or 64hd/32sec option is NOT selected), then the 1st NTFS partition will start at sector 2048 (Cyl 0 Hd 32 Sec 33).

Comparing small file copy times between old and new RMPrepUSB versions on USB 3 port formatted as NTFS gives:

v2.1.645 v2.1.647
31 25sec
42 36sec
42 37sec

Hier steht etwas zu Erklärung:

http://rmprepusb.blogspot.de/2014/06/increase-speed-of-your-sd-card-or-flash.html

When you format a drive as FAT32 using RMPrepUSB, the clusters are aligned to start on a 1MB boundary. This is important for flash memory because in order to write sectors, a whole page of flash memory has to be erased first. RMPrepUSB ensures these 'erase-pages' are correctly aligned with the clusters to minimise the number of erase cycles that are required. This also has the side-affect of extending the life of your flash memory as it reduces the number of read-erase-write cycles over it's lifetime.

Der Entwickler scheint zu wissen was er tut, nur verstehe ich es einfach nicht.


MfG

xsid

- - - Beitrag zusammengeführt - - -

Erklärung zur versteckten Partition:

2 PTN (2 PARTITIONEN) Durch hinzufügen einer kleinen, verborgenen Sekundärpartition zum Laufwerk,
behandeln ein BIOSe das Laufwerk als Festplatte und nicht als Wechseldatenträger.


Das habe ich aus der Programmbeschreibung.

- - - Beitrag zusammengeführt - - -

Lösung, Erklärung für mich:

RMPrepUSB_Portable_v2.1.730.zip ist für Easy2Boot ausgelegt um von möglichst vielen, auch alte System booten zu können, deswegen wird Anfang 63 gesetzt.

Das HPUSBFW_v2.2.3.exe HP USB Storage Tool ist ein altes Tool, zum Zeitpunkt der Entwicklung war das Alignment noch kein Thema, deswegen auch hier der Anfang 63.


Auf die Lesegeschwindigkeit hat ein Anfang 63 keine Auswirkung:

Code:
Anfang 63

sudo fdisk -l

Disk /dev/sdb: 16.0 GB, 16004415488 bytes                                                                                                                                                                                        
255 Köpfe, 63 Sektoren/Spur, 1945 Zylinder, zusammen 31258624 Sektoren                                                                                                                                                           
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0x49f3cd42

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1              63    31230359    15615148+   c  W95 FAT32 (LBA)


sudo hdparm -tT /dev/sdb

/dev/sdb:
 Timing cached reads:   26790 MB in  2.00 seconds = 13409.20 MB/sec
 Timing buffered disk reads: 322 MB in  3.01 seconds = 106.85 MB/sec




WEITERER TEST:

Anfang 64 

sudo fdisk -l

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1               1   468862127   234431063+  ee  GPT

Disk /dev/sdb: 16.0 GB, 16004415488 bytes
255 Köpfe, 63 Sektoren/Spur, 1945 Zylinder, zusammen 31258624 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0x49f3cd42

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1            2048    31258623    15628288    b  W95 FAT32

sudo hdparm -tT /dev/sdb

/dev/sdb:
 Timing cached reads:   25690 MB in  2.00 seconds = 12857.83 MB/sec
 Timing buffered disk reads: 322 MB in  3.00 seconds = 107.16 MB/sec

Die Schreibgeschwindigkeit ist bei einem Easy2Boot Stick (RMPrepUSB Empfehlung) nicht von Bedeutung.




Für Standard USB Flash Speicher sollte RMPrepUSB und das HPUSBFW nicht mehr eingesetzt werden, weil ein Alignment nicht berücksichtigt wird. Ohne ein Alignment wird die Schreibgeschwindigkeit geringer und die Lebensdauer von USB Flash ebenso.
 
Zuletzt bearbeitet:
Erklärung zur versteckten Partition:

2 PTN (2 PARTITIONEN) Durch hinzufügen einer kleinen, verborgenen Sekundärpartition zum Laufwerk,
behandeln ein BIOSe das Laufwerk als Festplatte und nicht als Wechseldatenträger.
Das macht in der Tat Sinn. Das sollte aber nur bei recht alten Rechnern von Bedeutung sein.

RMPrepUSB_Portable_v2.1.730.zip ist für Easy2Boot ausgelegt um von möglichst vielen, auch alte System booten zu können, deswegen wird Anfang 63 gesetzt.

Das HPUSBFW_v2.2.3.exe HP USB Storage Tool ist ein altes Tool, zum Zeitpunkt der Entwicklung war das Alignment noch kein Thema, deswegen auch hier der Anfang 63.
Ja, gaaaanz alte Systeme brauchen manchmal diesen Anfang.

Auf die Lesegeschwindigkeit hat ein Anfang 63 keine Auswirkung:
Falsch! Das hat sehr wohl eine Auswirkung. Entweder musst du eine Page lesen oder zwei.

Code:
 Timing cached reads:   25690 MB in  2.00 seconds = 12857.83 MB/sec
 Timing buffered disk reads: 322 MB in  3.00 seconds = 107.16 MB/sec
Das ist nicht die Lesegeschwindigkeit! Cached kannst du sowieso vergessen – dort findet gar kein Zugriff auf den Flash-Speicher statt. Buffered liest ohne Partitionen oder Dateisysteme zu berücksichtigen.
 
Hallo SammysHP und Wissende,

wie prüfe ich die Lese- Schreibgeschwindigkeit von einem USB Stick richtig?

MfG

xsid
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben