Εμφάνιση 1-4 από 4
  1. #1
    Εγγραφή
    20-12-2005
    Μηνύματα
    3.228
    Downloads
    4
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    49997/4997
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΞΑΝΘΗ
    Router
    Speedport W 724V
    SNR / Attn
    24,4(dB) / (dB)
    Καλησπέρα.

    Γράφω και εδώ το ίδιο με το insomnia να υπάρχει μήπως έχει κανείς το συγκεκριμένο πρόβλημα. Δεν μου αρέσει που ανοίγω νέο νήμα μόνο για ένα tip αλλά δεν ξέρω που να το γράψω. Αν πιστεύετε ότι υπάρχει κάποιο σχετικό νήμα, παρακαλώ να μεταφερθεί εκεί.

    Όπως γίνεται σε αυτές τις περιπτώσεις, ακολουθεί 5 καντάρια κατεβατό με περιγραφή του προβλήματος και μία γραμμή που είναι η λύση . Τα έβαλα σε spoilers ώστε όποιος έχει το ίδιο πρόβλημα να πάει κατευθείαν στη λύση χωρίς να διαβάζει το βιβλίο μου.

    [Intro]
    Spoiler:

    Εκτός από το κλασικό full backup σε σκληρό, χρησιμοποιώ και οπτικά μέσα μίας εγγραφής όπως dvd+r, bd-r. Υπάρχουν όμως δεδομένα που δεν με βολεύει να χρησιμοποιήσω dvd+r γιατί πχ μπορεί ένα μέρος τους να αλλάζει συχνά οπότε να πρέπει να καίω συνέχεια νέα δισκάκια και να περιμένω να γραφούν nGB όταν άλλαξαν μόλις kMB.

    Για τέτοια δεδομένα, βολεύει πολύ το backup σε επανεγγράψιμους οπτικούς δίσκους. Κάτι που δεν είναι ευρέως γνωστό και δεν πολύ-χρησιμοποιείται είναι ότι τα BD-RE, DVD+RW (και τα DVD-RW αλλά υπό συνθήκες οπότε δεν βολεύουν άσε που έχουν σκατά ποιότητα) είναι random-writable. Ενώ τα DVD-RAM λανσάρονται ως random-writable, στα υπόλοιπα δεν το αναφέρει κανείς.

    Δηλαδή μπορείς να γράψεις σε οποιοδήποτε τομέα τους όπως ακριβώς γίνεται στις δισκέτες, σκληρούς δίσκους, κτλ. Έτσι μπορείς να κάνεις mkfs οποιοδήποτε filesystem (αν και τα extX, XFS, κτλ βάζουν πολύ φόρτο στο δισκάκι και καλό είναι να χρησιμοποιείται το UDF που έχει φτιαχτεί για αυτή τη δουλειά), να το κάνεις mount και να γράψεις ό,τι θέλεις σαν να είναι κανονικός σκληρός.

    Επειδή η ταχύτητα δεν είναι τόσο μεγάλη όσο όταν γράφεις συνεχόμενους τομείς με το cdrecord, αυτό που έκανα εγώ ήταν την πρώτη φορά να δημιουργώ με την truncate ένα αρχείο με το μέγεθος του οπτικού δίσκου, να το κάνω luksFormat ώστε το backup να είναι κρυπτογραφημένο, και μετά mkudffs, mount -o loop, αντιγραφή δεδομένων, και τέλος εγγραφή με το cdrecord.

    Από εκεί και πέρα, το έκανα όποτε ήθελα mount και έκανα rsync τις αλλαγές που δεν με πείραζε να γραφούν και λίγο πιο αργά γιατί δεν ήταν πολλές.


    [Πρόβλημα]
    Spoiler:

    Όταν λοιπόν πήρα ένα blu-ray writer, το πρώτο πράγμα που έκανα ήταν να αγοράσω επανεγγράψιμους δίσκους bd-re για να κάνω το ίδιο πράγμα. Το μόνο κακό φυσικά με το DVD+RW ήταν ότι πολλές φορές δεν έφταναν τα 4GB οπότε τώρα με 25GB ποιος στη χάρη μου.

    Έλα που όμως δεν έπαιζε με τίποτα. Το cdrecord και λοιπά προγράμματα έγγραφαν κανονικά αλλά όταν έκανα mount, πάντα γινόταν read-only mount. Δοκίμασα ένα κάρο ιστορίες και δεν έπαιζε τίποτα.

    Γενικά δεν υπάρχουν πολλά άρθρα για blu-ray στο google και ειδικά για επανεγγράψιμους δίσκους αλλά όλα τα άρθρα που έβρισκα έλεγαν ότι το κάνεις mount και γράφεις. Μάλιστα πολλοί οδηγοί έλεγαν τι παιδεύεσαι με cdrecord και δεν κάνεις κατευθείαν dd.

    Δοκίμασα και την λύση του packet writing που πρότειναν κάποιοι οδηγοί μήπως και φταίει αυτό αν και ποτέ δεν το χρησιμοποίησα σε DVD+RW και πάντα έπαιζε τζάμι. Τίποτα και πάλι. Σκέφτηκα ότι κάτι φταίει με την συσκευή μου ή το firmware και δεν υποστηρίζει random εγγραφή (αν και ήξερα ότι το πρότυπο ορίζει υποχρεωτική την υποστήριξη random εγγραφών). Δεν είχα και DVD+RW γμτ να δοκιμάσω αν παίζει με εκείνο.

    Παράτησα για ένα διάστημα το ψάξιμο γιατί διάβασα ότι στον 4.2 πυρήνα έσπασε ένα ioctl και πολλά πράγματα (όπως το να γράφεις σαν χρήστης) δεν έπαιζαν σωστά οπότε σκέφτηκα αυτό θα φταίει.

    Με τα πολλά λοιπόν και επειδή το dd έβγαζε μήνυμα "Μόνο-αναγνώσιμο σύστημα αρχείων", έψαξα να δω στον πυρήνα που στο καλό υπάρχει το μήνυμα λάθους EROFS. Όπως ήταν αναμενόμενο, υπάρχει σε όλα τα filesystems και στους οδηγούς ata / scsi. Άνοιξα λοιπόν το αρχείο drivers/cdrom/cdrom.c που διέπει τους οπτικούς δίσκους ανεξάρτητα αν το bus είναι ata ή scsi για να δω τι στο καλό γίνεται.

    Στην συνάρτηση cdrom_open υπάρχει ο παρακάτω κώδικας:
    Κώδικας:
    		if (mode & FMODE_WRITE) {
    			ret = -EROFS;
    			if (cdrom_open_write(cdi))
    				goto err_release;
    			ret = 0;
    		}
    Δηλαδή θέτει τιμή EROFS στην ret για παν ενδεχόμενο και μετά καλεί την συνάρτηση cdrom_open_write. Αν επιτύχει η συνάρτηση και ανοίξει σωστά για εγγραφή, τότε θέτει στην ret τιμή 0.

    Οπότε έπρεπε να δω τι κάνει η συνάρτηση cdrom_open_write. Επειδή ο οδηγός cdrom εκτελείται για όλους τους οπτικούς δίσκους, η συνάρτηση αυτή ελέγχει πολλές περιπτώσεις όπως μαγνητο-οπτικά, dvd-ram, κτλ. Το τμήμα που τρέχει στη δική μου περίπτωση είναι το παρακάτω:
    Κώδικας:
    		(void) cdrom_is_random_writable(cdi, &ram_write);
    
    	else if (!cdrom_is_dvd_rw(cdi))
    		ret = 0;
    Αφού ελεγχθεί ότι το μέσο είναι random writable και ελεγχθούν οι δυνατότητες του drive ότι υποστηρίζει random εγγραφές, πηγαίνουμε στο τελευταίο else που ελέγχει αν έχουμε επανεγγράψιμο dvd.

    Βήμα ταχύ προς την συνάρτηση cdrom_is_dvd_rw όπου βλέπουμε το εξής:
    Κώδικας:
    	switch (cdi->mmc3_profile) {
    	case 0x12:	/* DVD-RAM	*/
    	case 0x1A:	/* DVD+RW	*/
    		return 0;
    	default:
    		return 1;
    	}
    Ελέγχεται το mmc προφίλ του μέσου και επιστρέφεται 0 δηλαδή επιτρέπεται η εγγραφή μόνο αν έχουμε DVD-RAM και DVD+RW. Fuck. Πάντα σε debugging χρειάζεται να ακολουθήσεις μια αλυσίδα 36 συναρτήσεων και στο τέλος καταλήγεις σε κάτι εντελώς απλό. Μάλλον μόνο εγώ χρησιμοποιώ αυτό το feature του random writing :P. Σε συνδυασμό με το ότι blu-ray δεν έπιασε και τόσο πολύ, μάλλον κανείς δεν σκέφτηκε να προσθέσει και το προφίλ του bd-re εδώ.

    Ίσως βέβαια να υπάρχει πιο δόκιμη λύση με την δημιουργία μιας συνάρτησης που να ελέγχει αποκλειστικά για blu-ray όπως γίνεται στις άλλες περιπτώσεις αλλά και αυτό μου έπαιξε τέλεια.


    [Λύση]
    Κώδικας:
    --- drivers/cdrom/cdrom.c.orig	2015-09-24 11:49:37.673401889 +0300
    +++ drivers/cdrom/cdrom.c	2015-09-24 10:45:13.800657895 +0300
    @@ -885,6 +885,7 @@
     	switch (cdi->mmc3_profile) {
     	case 0x12:	/* DVD-RAM	*/
     	case 0x1A:	/* DVD+RW	*/
    +	case 0x43:	/* BD-RE	*/
     		return 0;
     	default:
     		return 1;
    Προσθέτουμε την τιμή 0x43 που είναι το προφίλ του BD-RE και όλα λειτουργούν τέλεια. Αν κάποιος λοιπόν κάνει backup σε BD-RE, μπορεί να κάνει την παραπάνω αλλαγή και να κάνει compile τον πυρήνα.
    "I like offending people, because I think people who get offended should be offended" - Linus Torvalds

    "Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
    κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
    Γα.... την πολιτική ορθότητα.

  2. #2
    Εγγραφή
    30-01-2009
    Περιοχή
    127.0.0.1
    Μηνύματα
    2.185
    Downloads
    5
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    50/5
    ISP
    ΟΤΕ
    DSLAM
    ΟΤΕ - ΑΠ. ΠΑΥΛΟΣ
    Router
    Speedport Entry 2i
    Path Level
    Interleaved
    Ενδιαφέρουσα η δυνατότητα backup σε επανεγγράψιμο DVD / Blu-Ray, πάντα είχα την εντύπωση ότι έπρεπε να ξαναγραφτεί όλο το δισκάκι κάθε φορά που θέλεις να αλλάξεις τα δεδομένα.

    Φοβερό kernel debugging πάντως! Έκανες bug report για να διορθωθεί το πρόβλημα και στο mainline;

  3. #3
    Εγγραφή
    27-08-2004
    Περιοχή
    internet
    Μηνύματα
    23.371
    Downloads
    58
    Uploads
    17
    Άρθρα
    9
    Ταχύτητα
    49999 / 4999
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
    Γράψε στο https://bugzilla.kernel.org/, συμπεριέλαβε το patch και πιθανώς, αν είναι σωστό, θα σε κατευθύνουν πως να το κάνεις submit στον kernel.
    Gentoo Linux: mess with the best and you might learn something
    δικτυακή παράσταση | twitter | within specifications
    Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.

  4. #4
    Εγγραφή
    20-12-2005
    Μηνύματα
    3.228
    Downloads
    4
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    49997/4997
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΞΑΝΘΗ
    Router
    Speedport W 724V
    SNR / Attn
    24,4(dB) / (dB)
    Παράθεση Αρχικό μήνυμα από ifaigios Εμφάνιση μηνυμάτων
    Ενδιαφέρουσα η δυνατότητα backup σε επανεγγράψιμο DVD / Blu-Ray, πάντα είχα την εντύπωση ότι έπρεπε να ξαναγραφτεί όλο το δισκάκι κάθε φορά που θέλεις να αλλάξεις τα δεδομένα.

    Φοβερό kernel debugging πάντως! Έκανες bug report για να διορθωθεί το πρόβλημα και στο mainline;
    Θυμάμαι ότι πριν χρόνια σε μία έκδοση των windows κατά την εγκατάσταση που βγάζει εκείνα τα μηνυματάκια με το τι καινούριο θα δεις τώρα, το είχε και αυτό ότι μπορείς να βάλεις ένα δισκάκι και να κάνεις drag'n'drop αρχεία αλλά γενικά δεν πολύ-χρησιμοποιήθηκε ποτέ.

    Εννοείται πως να ξαναγραφτεί από την αρχή είναι τρελή μανούρα. Στα dvd δεν είναι τόσο πρόβλημα γιατί μιλάμε για 4GB και πλέον υπάρχουν γρήγορα δισκάκια. Σε blu-ray, αυτά που κυκλοφορούν στην αγορά (τουλάχιστον αυτά που μπορείς να βρεις εύκολα παντού) είναι μόνο 2x οπότε για 25GB χρειάζεσαι 45 λεπτά.

    Το UDF έχει στρατηγική ακόμη και για μη επανεγγράψιμα μέσα οπότε το ίδιο μπορείς να κάνεις και με απλά +r δισκάκια απλά εκεί φυσικά κάθε αλλαγή καταλαμβάνει χώρο μια και δεν μπορούν να σβηστούν τα προηγούμενα δεδομένα. Αν πχ σβήσεις ένα αρχείο, δεν θα το βλέπεις στο ls αλλά τα δεδομένα του θα υπάρχουν στον τομέα που υπήρχαν αρχικά.

    Σε αυτή την περίπτωση ουσιαστικά δεν μπορείς να το πεις kernel debugging γιατί ήταν γελοία περίπτωση να το βρεις. Απλά μου πήρε λίγη ώρα γιατί δεν περίμενα ότι θα είναι σε αυτό το τελευταίο else αλλά σε κάποια από τις προηγούμενες συναρτήσεις όπως πχ η dvdram.

    Παράθεση Αρχικό μήνυμα από mrsaccess Εμφάνιση μηνυμάτων
    Γράψε στο https://bugzilla.kernel.org/, συμπεριέλαβε το patch και πιθανώς, αν είναι σωστό, θα σε κατευθύνουν πως να το κάνεις submit στον kernel.
    Έχω στείλει κάμποσες φορές patch. Δεν είναι τίποτα δύσκολο (όπως πχ με τον gcc που έπρεπε να υπογράψεις 300 αιτήσεις για τα copyright :P) απλά συνήθως στέλνω e-mail γιατί υποθέτω το bugzilla θέλει εγγραφή και βαριέμαι να γραφτώ Βρήκα με το get_maintainer τον υπεύθυνο και την mailing list και θα έστελνα e-mail αλλά δεν το έκανα ακόμη. Ευχαριστώ για την συμβουλή.
    "I like offending people, because I think people who get offended should be offended" - Linus Torvalds

    "Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
    κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
    Γα.... την πολιτική ορθότητα.

Παρόμοια Θέματα

  1. ImgBurn error. Finalization σε Bluray writer
    Από Vasilis 07 στο φόρουμ Σκληροί δίσκοι, αποθηκευτικά μέσα και λοιπά περιφερειακά
    Μηνύματα: 6
    Τελευταίο Μήνυμα: 29-07-15, 06:59
  2. Απόστολή backup σε cloud.
    Από chillath στο φόρουμ Software γενικά
    Μηνύματα: 5
    Τελευταίο Μήνυμα: 03-04-15, 13:07
  3. Αγορά bluray δισκάκι 50gb.
    Από vothros στο φόρουμ Σκληροί δίσκοι, αποθηκευτικά μέσα και λοιπά περιφερειακά
    Μηνύματα: 5
    Τελευταίο Μήνυμα: 15-02-15, 20:41
  4. system backup
    Από pzogr στο φόρουμ Windows
    Μηνύματα: 22
    Τελευταίο Μήνυμα: 07-12-14, 02:27

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας