Eggrafh megalou arxeiou se DVD

DJ Art djart at linux.gr
Thu May 17 21:05:44 EEST 2007


On Thursday 17 May 2007, Spiros Georgaras wrote:
> Το μέγιστο μέγεθος αρχείου για DVD είναι 2G. Οπότε θα πρέπει να τα
> κάνεις stlit εκεί.

Δεν υπάρχει τέτοιο limitation σε κανένα standard.

Ok, ας τα πάρουμε τα πράγματα από την αρχή:

Αυτό που θέλει ο Χάρης να κάνει, στον κόσμο του Linux δε γίνεται γιατί 
υπάρχουν 2 προβληματάκια.

Ας περιγράψουμε πρώτα ποιό θα ήταν το σωστό. Το σωστό θα ήταν με UDF 
filesystem να μπορεί κανείς να γράψει όσο μεγάλο αρχείο θέλει επάνω σε 
ένα DVD. Το file size limit του UDF είναι 2TB, επομένως αυτό που σε 
περιορίζει είναι το DVD (4.χ ή 7.χ GB).

Για να το πώ απλά και χύμα, σε Winblows γράφεις κανονικότατα αρχεία > 4 
GB by the book και by the standard με UDF filesystem.

Περνάμε στα προβληματάκια του Linux world, τώρα:

1) Το 1ο πρόβλημα είναι στο ότι το mkisofs δεν μπορεί να φτιάξει καθαρό 
UDF filesystem, παρα μόνο hybrid ISO + UDF (coupled Joliet). Αυτό όμως, 
κάθε άλλο παρά standard compliant είναι, αφενός, αφετέρου λόγω Hybrid 
(coulping, όπως θέλετε πείτε το), υπάρχει πρόβλημα με τα μεγάλα αρχεία.

Η απόδειξη αυτού βρίσκεται στο manpage του mkisofs. Πηγαίντε και 
διαβάστε τα όσα γράφει δίπλα στο -udf section.

Το K3b αναγκαστικά κάνει την πάπια επειδή χρησιμοποιεί το mkisofs από 
κάτω.

Εδώ τελειώνει η ιστορία για έναν απλό Desktop μέσο χρήστη. Η λύση είναι 
να μη γράφεις μεγάλα αρχεία και τέλος.

2) Το 2ο πρόβλημα είναι ο ίδιος ο πυρήνας.

Ο πυρήνας λοιπόν, έχει hardcoded file size limit του 1 GB στο UDF WRITE 
MODE.

Αυτό δεν ήταν έτσι πάντα. Σε κάποια φάση βγήκε security warning στον 
κώδικα του udf write, οπότε οι καλοί μας kernel developers, αντί να 
κάτσουν να το φτιάξουν σωστά, το patchάρανε πρόχειρα με file size limit 
ώστε να κλείσει το security warning.

Η απόδειξη αυτού:
http://bugzilla.kernel.org/show_bug.cgi?id=7102
http://lkml.org/lkml/2006/9/3/43

#######
Για power users, τί θα γινόταν ΑΝ δεν υπήρχε το kernel limit:
#######

θα κάναμε:

dd if=/dev/zero bs=1M of=udf.iso count=4460
mkudffs -u16 udf.iso

mount -o loop -t udf udf.iso /mnt/lala

θα μπαίναμε στο /mnt/lala, θα γράφαμε αρχεία όσο μεγάλα θέλαμε (> 4 GB), 
θα κάναμε unmount, και θα γράφαμε το udf.iso με το growisofs ή Burn DVD 
image με το K3b αν προτιμάτε.

Αν αρθεί το kernel bug, η λύση για το K3b είναι να χρησιμοποιήσει το 
mkudffs (googlίστε για να το βρείτε) εργαλείο αντί του mkisofs για UDF 
only filesystems. Προσωπικά, αν δεν υπήρχε το bug, θα έστελνα mail και 
θα έκανα feature request στο K3b για να προσθέσει αυτό το support, 
εξηγώντας με "επίσημο" τρόπο όλα τα παραπάνω για να πεισθεί και ο K3b 
developer (μερικές φορές είναι ζώα και βαριούνται να προγραμματίσουν).
---------------------------------------------------------------------------------



Εν κατακλείδι, Χάρη κάνε split στο 1 GB και γράψτο me iso9600 filesystem 
για να μπορέσεις να κάνεις τη δουλειά σου.




-- 
Thanos Kyritsis <djart at linux.gr>
Q: Εθελοντής ή θεατής ?
A: Ιδιοκτήτης! ;-)




More information about the Linux-greek-users mailing list