Προς το περιεχόμενο

Πώς κάνω virtual /dev/fd0;


alkisg

Προτεινόμενες αναρτήσεις

Στο laptop δεν έχω floppy, και θα με βόλευε ένα virtual. Αλλά ψάχνω για κάτι σαν hardware emulation, όχι απλό mount ενός image σε κάποιον φάκελο (φυσικά και πάλι θα υπάρχει image από πίσω, απλά να γίνεται report στο λειτουργικό σαν να είναι hardware).

Δηλαδή όχι αυτό:

http://untitledfinale.wordpress.com/2007/10/09/create-mount-and-copy-floppy-disks-images-under-linux/

 

αλλά να μπορώ να τρέχω

sudo grub

root (fd0)

setup

 

ή να πηγαίνω στο VirtualBox και να επιλέγω "Mount Floppy Drive » Host Floppy Drive".

 

Υπάρχει τέτοια δυνατότητα;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν προσθεσεις στο fstab την αναλογη γραμμη για floppy, μαζι με τα οσα λεει περι mounting το blog που παραθετεις, λογικα θα εχεις μεσα στο "Υπολογιστης" ενα floppy. Αυτο δεν θες?

 

Αυτο με τον grub δεν το καταλαβα. Εφοσον πρεπει να φορτωθει πρωτα το λειτουργικο για να φτιαχτει το ψευτικο floppy, δεν υπαρχει τροπος να δει ο grub το floppy.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο laptop δεν έχω floppy, και θα με βόλευε ένα virtual. Αλλά ψάχνω για κάτι σαν hardware emulation, όχι απλό mount ενός image σε κάποιον φάκελο (φυσικά και πάλι θα υπάρχει image από πίσω, απλά να γίνεται report στο λειτουργικό σαν να είναι hardware).

Δηλαδή όχι αυτό:

http://untitledfinale.wordpress.com/2007/10/09/create-mount-and-copy-floppy-disks-images-under-linux/

 

αλλά να μπορώ να τρέχω

sudo grub

root (fd0)

setup

 

ή να πηγαίνω στο VirtualBox και να επιλέγω "Mount Floppy Drive » Host Floppy Drive".

 

Υπάρχει τέτοια δυνατότητα;

Εξαρτάται από το τι ελέγχει κάθε φορά η καλούσα εφαρμογή. Μια λύση που μπορείς αν δοκιμάσεις είναι η εξής:

>
sudo losetup /dev/loop0 /path/to/floppy.img
ln -s /dev/loop0 /dev/fd0

Από 'κει και πέρα το /dev/loop0 είναι ένα κανονικότατο block device, το οποίο μπορείς να το κάνεις link στο floppy και να δουλεύει διαφανώς ως προς τα i/o operations. Τώρα, δεν ξέρω αν το floppy έχει κάποια ειδικά IOCTLS τα οποία χρησιμοποιεί ή αν ο grub π.χ. ελέγχει και το major number του device για να δει αν όντως είναι floppy. Αυτό που νομίζω ότι κάνει ο grub σίγουρα είναι BIOS probes, αλλά μπορείς να τα ξεγελάσεις γράφοντας ένα map file (info grub "Invoking the grub shell" "Device map")

 

 

Αν προσθεσεις στο fstab την αναλογη γραμμη για floppy, μαζι με τα οσα λεει περι mounting το blog που παραθετεις, λογικα θα εχεις μεσα στο "Υπολογιστης" ενα floppy. Αυτο δεν θες?

Το να δεις στο "Υπολογιστής" ένα floppy είναι πολύ διαφορετικό από το να έχεις στο /dev/fd0 ένα virtual floppy.

 

Αυτο με τον grub δεν το καταλαβα. Εφοσον πρεπει να φορτωθει πρωτα το λειτουργικο για να φτιαχτει το ψευτικο floppy, δεν υπαρχει τροπος να δει ο grub το floppy.

Αυτό που δείχνει ο alkisg είναι το shell του GRUB που τρέχεις μέσα από το λειτουργικό για να εγκαταστήσεις το stage1 στους δίσκους που θες, επομένως βλέπει ό,τι βλέπει και το λειτουργικό.

 

edit:

>
$ rmmod floppy
$ dd if=/dev/zero of=/tmp/floppy.img bs=1k count=1440
$ losetup /dev/loop0 /tmp/floppy.img
$ cd /dev
$ ln -s loop0 fd0
$ echo "(fd0) /dev/fd0" >> /boot/grub/device.map
$ grub
   GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

      [ Minimal BASH-like line editing is supported.   For
        the   first   word,  TAB  lists  possible  command
        completions.  Anywhere else TAB lists the possible
        completions of a device/filename. ]

grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83

grub> setup (fd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (fd0)"... failed (this is not fatal)
Running "embed /grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)
Running "install /grub/stage1 d (fd0) /grub/stage2 p /grub/menu.lst "... succeeded
Done.

Αποτέλεσμα:

>
$ hexdump -C floppy.img -n 512
00000000  eb 48 90 00 00 00 00 00  00 00 00 00 00 00 00 00  |.H....|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |....|
*
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 03 02  |....|
00000040  80 00 00 80 45 c4 00 00  00 08 fa eb 07 f6 c2 80  |....E....|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1....|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 be 7f 7d  |. ..@|<.t...R..}|
00000070  e8 34 01 f6 c2 80 74 54  b4 41 bb aa 55 cd 13 5a  |.4....tT.A..U..Z|
00000080  52 72 49 81 fb 55 aa 75  43 a0 41 7c 84 c0 75 05  |RrI..U.uC.A|..u.|
00000090  83 e1 01 74 37 66 8b 4c  10 be 05 7c c6 44 ff 01  |...t7f.L...|.D..|
000000a0  66 8b 1e 44 7c c7 04 10  00 c7 44 02 01 00 66 89  |f..D|....D...f.|
000000b0  5c 08 c7 44 06 00 70 66  31 c0 89 44 04 66 89 44  |\..D..pf1..D.f.D|
000000c0  0c b4 42 cd 13 72 05 bb  00 70 eb 7d b4 08 cd 13  |..B..r...p.}....|
000000d0  73 0a f6 c2 80 0f 84 ea  00 e9 8d 00 be 05 7c c6  |s....|.|
000000e0  44 ff 00 66 31 c0 88 f0  40 66 89 44 04 31 d2 88  |D..f1....f.D.1..|
000000f0  ca c1 e2 02 88 e8 88 f4  40 89 44 08 31 c0 88 d0  |....D.1...|
00000100  c0 e8 02 66 89 04 66 a1  44 7c 66 31 d2 66 f7 34  |...f..f.D|f1.f.4|
00000110  88 54 0a 66 31 d2 66 f7  74 04 88 54 0b 89 44 0c  |.T.f1.f.t..T..D.|
00000120  3b 44 08 7d 3c 8a 54 0d  c0 e2 06 8a 4c 0a fe c1  |;D.}<.T....L...|
00000130  08 d1 8a 6c 0c 5a 8a 74  0b bb 00 70 8e c3 31 db  |...l.Z.t...p..1.|
00000140  b8 01 02 cd 13 72 2a 8c  c3 8e 06 48 7c 60 1e b9  |....r*....H|`..|
00000150  00 01 8e db 31 f6 31 ff  fc f3 a5 1f 61 ff 26 42  |....1.1....a.&B|
00000160  7c be 85 7d e8 40 00 eb  0e be 8a 7d e8 38 00 eb  ||..}....}.8..|
00000170  06 be 94 7d e8 30 00 be  99 7d e8 2a 00 eb fe 47  |...}.0...}.*...G|
00000180  52 55 42 20 00 47 65 6f  6d 00 48 61 72 64 20 44  |RUB .Geom.Hard D|
00000190  69 73 6b 00 52 65 61 64  00 20 45 72 72 6f 72 00  |isk.Read. Error.|
000001a0  bb 01 00 b4 0e cd 10 ac  3c 00 75 f4 c3 00 00 00  |....<.u....|
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 24 12  |....$.|
000001c0  0f 09 00 be bd 7d 31 c0  cd 13 46 8a 0c 80 f9 00  |....}1...F....|
000001d0  75 0f be da 7d e8 cf ff  eb 9d 46 6c 6f 70 70 79  |u...}....Floppy|
000001e0  00 bb 00 70 b8 01 02 b5  00 b6 00 cd 13 72 d7 b6  |...p....r..|
000001f0  01 b5 4f e9 e6 fe 00 00  00 00 00 00 00 00 55 aa  |..O....U.|
00000200

Ο GRUB εγκαταστάθηκε κανονικά ;)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@jim_p:

Το sudo grub εννοείται ότι το δίνω αφού πρώτα έχει φορτωθεί το λειτουργικό.

Ουσιαστικά θέλω να βλέπω και το boot sector του floppy, όχι μόνο τα αρχεία του στο "Υπολογιστής". Π.χ. το grub-install που να κάνει install όταν βλέπει μόνο αρχεία και δε βλέπει boot sector;

 

@Apoikos: πρέπει να αρχίσουμε να σου πληρώνουμε support, δεν πάει άλλο αυτή η κατάσταση! :)

Το είχα φτάσει μέχρι το losetup, αλλά μου έλειπε το ln -s. Τέλειο, ευχαριστώ.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@jim_p:

@Apoikos: πρέπει να αρχίσουμε να σου πληρώνουμε support, δεν πάει άλλο αυτή η κατάσταση! :)

Το είχα φτάσει μέχρι το losetup, αλλά μου έλειπε το ln -s. Τέλειο, ευχαριστώ.

 

alkisg, δεν κάνει τίποτα, ξέρω ότι το χρειάζεσαι για ευγενή σκοπό ;)

 

Απλά να προσθέσω κάτι: το /dev/fd0 -> /dev/loop0 είναι virtual σε επίπεδο block device, δηλαδή μέχρι και το read/write. Δεν είναι ένα πλήρες virtual floppy drive γιατί δε θα δουλεύουν τα ioctls:

>
1. FDSETPRM sets the geometry (number of tracks, heads and sectors,
etc) of a drive.
2. FDDEFPRM sets the geometry in a permanent way (not cleared after a
disk change)
3. FDGETPRM read a previously set drive geometry (or an autodetected
geometry) back.
4. FDCLRPRM makes the driver forget the geometry for a given drive
(to trigger autodetection)
5. FDFLUSH forgets the contents of the floppy buffers. CAUTION: This
doesn't write dirty buffers to the disk. Use fsync first.
6. FDGETDRVTYP displays the type of a drive (name parameter). This is
used by MAKEFLOPPIES. For the naming convention, see the description
of the MAKEFLOPPIES script. For formats which work in several drive
types, FDGETDRVTYP return a name which is appropriate for the oldes
drive type which supports this format.
7. FDSETDRVPRM sets various drive parameters.
8. FDGETDRVPRM reads these parameters back.
9. FDGETDRVSTAT gets the cached drive state (disk changed, write
protected et al.)
10. FDPOLLDRVSTAT polls the drive and return its state.
11. FDGETFDCSTAT gets the floppy controller state.
12. FDRESET resets the floppy controller under certain conditions.
13. FDRAWCMD sends a raw command to the floppy controller.
14. FDWERRORCLR clear the write error stats.
15. FDWERRORGET gets the write error stats.
16. FDSETMAXERRS sets the error thresholds (when to display error
messages on the console, and when to abort operations). The maxerror
structure is part of the drive parameters, but this ioctl is needed in
addition to FDSETDRVPRM because FDSETDRVPRM is only accessible to the
superuser whereas FDSETMAXERRS is accessible to whoever has write
access to the floppy device.
17. FDMSGON/FDMSGOFF switch informational messages on/off. This flag
is part of the drive parameters as well, but FDMSGON/FDMSGOFF don't
need superuser status.

 

Κατά 99% δε θα αντιμετωπίσεις πρόβλημα σε αυτά που θες να κάνεις, απλά δε θα δουλεύουν τα floppy-specific προγράμματα που ρυθμίζουν ας πούμε παραμέτρους του controller.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

...και το ευτυχές αποτέλεσμα: http://users.sch.gr/alkisg/tosteki/index.php?topic=1451.0

 

Ο οδηγός αυτός περιγράφει την καλύτερη μέθοδο που έχω βρει για εκκίνηση πολλών λειτουργικών είτε από δισκέτα είτε από CD είτε από σκληρό που να έχει ήδη Windows ή Linux είτε μέσω δικτύου (thin clients).

Στο επισυναπτόμενο grubgpxe.7z περιλαμβάνονται μια δισκέτα εκκίνησης' date=' ένα [b']bootable CD[/b], καθώς και τα αρχεία που θα χρειαστούμε για εκκίνηση από σκληρό δίσκο. Μπορείτε να το αποσυμπιέσετε (και) με το ελεύθερο 7zip, δεν το έκανα .zip γιατί έβγαινε τριπλάσιο σε μέγεθος.

 

Μέθοδοι εκκίνησης:

...

 

Είναι 800Κβ οπότε δεν μπορώ να την επισυνάψω εδώ, αν κάποιος mod μπορεί κι αν θέλει ας τη βάλει στο sticky για το grub.

 

Εικόνα λειτουργίας:

index.php?action=dlattach;topic=1451.0;attach=563;image

Υ.Γ. τελικά το command line του grub έχει και την εντολή device για να χρησιμοποιεί virtual floppy! Δεν πειράζει, κάπου θα χρειαστεί και το losetup...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

chek2fire, από εμένα ελεύθερα, απλά χρόνο δε βρίσκω για μεγαλύτερη συμμετοχή στο ubuntu-gr...

 

Φοβερό πάντως το gpxe.krn, δίνει boot from network δυνατότητα κατευθείαν από τον boot manager, χωρίς memdisk/floppy emulation και λοιπές αλχημείες. Την έφτιαξα και σε .iso μορφή και τη δοκίμασα σε 2 ακόμα κάρτες δικτύου, όλα ΟΚ.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πάει καλά, γιατί τα περισσότερα προγράμματα χρησιμοποιούν shared libraries, τα οποία φορτώνονται μόνο μία φορά.

 

Client boot time < 1 λεπτό

Άνοιγμα OpenOffice Word Processor:

Πρώτο άνοιγμα (εγώ) ~= 10 δευτερόλεπτα

Επόμενα ανοίγματα (μαθητές) ~= 4 δευτερόλεπτα

Gimp ~= παραπλήσιο

Άνοιγμα Firefox ~= 4 δευτερόλεπτα

 

Χρήση μνήμης υπάρχει αναλυτικά σε ένα παραδοτέο του ΕΑΙΤΥ, εν ολίγοις το δούλευα σε τάξη για 1 χρόνο με 1 Gb RAM χωρίς πρόβλημα και τώρα έχω 2, οπότε είναι υπεραρκετά.

 

CPU: γενικά πολύ κάτω του 50%, εκτός αν χρησιμοποιηθεί ssh encryption (εγώ το έχω off) ή "περίεργα" προγράμματα, π.χ. flash plugin ή Microworlds κάτω από wine.

 

Ανανέωση/κύλιση οθόνης: Λίγο αργή σε κάποιες περιπτώσεις και ανάλογα με την υποδομή και τις ρυθμίσεις (switch, trunking, xorg 2D acceleration, ssh encryption...). Για παράδειγμα δουλεύουν άνετα openoffice / firefox / gimp αλλά όχι flash / video.

Totem full screen playback σε 10 clients με 300MHz switch trunking δίνει περίπου 5 εικόνες το δευτερόλεπτο.

 

Αυτά με clients ~= Celeron @500MHz / 128Mb Ram και server ~= Core 2 Duo 2GHz.

 

Υ.Γ. όμως σε άλλο σχολείο με clients ~= 1.6GHz / 256 Ram / 40 Gb δίσκους θα προτιμήσω local installation και εκτέλεση μόνο του OpenOffice και λοιπόν βαριών προγραμμάτων στο server μέσω ssh -Y, για το θέμα του screen refreshing που ανέφερα παραπάνω. Με 1000ρι switch/κάρτες δικτύου δεν νομίζω ότι θα υπήρχε καθυστέρηση.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

gtroza απλός ο λόγος, επειδή το openoffice writer έχει παραπάνω δυνατότητες, και μαζί με το calc αντί για gnumeric και το impress (αντί για ποιο;) είναι πιο "κοντά" στο office που μερικοί ήδη γνωρίζουν. Αν δεν γινόταν τότε ΟΚ, θα τους έβαζα abiword, αλλά αφού γίνεται... ;-)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

alkisg δεν έχω παρά να εκφράσω τα θερμά μου συγχαρητήρια για την προσπάθεια που έκανες. Τα παιδιά είναι πραγματικά πολύ τυχερά. Και πάλι μπράβο!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

NullScan ευχαριστώ, αλλά αν τα παιδιά ήταν τυχερά θα είχαν Core 2 Duo, και θα ήμουν κι εγώ τυχερός γιατί δεν θα παιδευόμουν με thin clients! :P

 

...Πενία τέχνας κατεργάζεται!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...