Hallo,
weil ich gerade eine 2TB Platte habe, wollte ich nach einigen Tests auch ausprobieren, was das Formatieren der Platte über die GUI der Dreambox macht. Noch hängt die Platte am eSATA-Anschluss. Leider gab's sofort einen GS.
[killPartition] 256 parted --script --align=min -- /dev/sdb mklabel msdos
Traceback (most recent call last):
File "/usr/lib/enigma2/python/Screens/HarddiskSetup.py", line 151, in doInit
result = self.hdd.initialize(self.isFstabMounted, self.numpart)
File "/usr/lib/enigma2/python/Components/Harddisk.py", line 510, in initialize
if self.createPartition() != 0:
File "/usr/lib/enigma2/python/Components/Harddisk.py", line 391, in createPartition
part1end = int(sectors-swapPartSize) #leaving 1GB for swap
TypeError: unsupported operand type(s) for -: 'str' and 'int'
Die Klammer steht schief, nur sectors sollte von str nach int konvertiert werden. Das steht auch so noch in git
389 cmd = 'parted --script --align=min ' + self.disk_path + ' -- mklabel msdos mkpart primary ext3 40s 100%'
390 if sectors and not self.isRemovable:
391 part1end = int(sectors-swapPartSize) #leaving 1GB for swap
Die Korrektur lautet: int(sectors)-swapPartSize #leaving 1GB for swap
Copyright meines Patches: geschenkt / public domain
Die Vorbedingung beim 'if' is wohl der Grund, weshalb ich als erster darauf stoße: vermutlich trifft 'not isRemovable' bei eSata zu, aber nicht bei USB, was die meisten benutzen. Außerdem muss wegen 'sectors' die Platte schon mal partitioniert worden sein.
Dabei fällt auf:
462 # We autocorrect any failures and check if the fs is actually one we can check (currently ext2/ext3)
477 if partitionType in ("ext2", "ext3"):
Bitte ext4 hinzufügen. fsck.ext4 gibt es schon längst auf der Dreambox!
Ich habe nicht weiter geprüft, ob das Formatieren jetzt klappt. Davor möchte ich noch ein paar andere Sachen ausprobieren. Fast hätte ich meine interne Platte initialisiert, weil die Speichergeräte-GUI immer wieder auf die erste Festplatte im System zurückspringt