ΣΗΜΕΙΩΣΗ: ΑΥΤΗ Η ΔΗΜΟΣΙΕΥΣΗ ΕΧΕΙ ΓΙΝΕΙ ΠΑΝΩ ΑΠΟ ΕΝΑ ΧΡΟΝΟ ΠΡΙΝ! |
---|
Εισαγωγή
Πραγματικά, δεν έχω σαφή απάντηση για ποιό λόγο γράφω έναν τέτοιο οδηγό. Υπάρχει όμως η περίπτωση όπου σε κάποιον θα φανεί χρήσιμος και επειδή βλέπω κάμποσες τέτοιες ερωτήσεις στο διαδίκτυο, έτσι και το αποφάσισα.
Ειλικρινά, αν και δεν θέλω να ακυρώσω τον οδηγό που θα δούμε παρακάτω, δεν σας χρειάζεται αυτό το λειτουργικό σύστημα (Windows). Ακόμη και αν χρειάζεστε κάποιο πρόγραμμα το οποίο δεν υπάρχει σε Linux, υπάρχουν εναλλακτικές οι οποίες λειτουργούν εξίσου καλά. Επίσης, υπάρχει και το VirtualBox.
Ωστόσο, αν βρεθείτε σε εκείνη την ανάγκη όπου χρειάζεται να δημιουργήσετε ένα εκκινήσιμο (bootable) USB stick με Windows μέσα από λειτουργικό Linux, ο παρακάτω οδηγός θα σας φανεί χρήσιμος.
Περιεχόμενα
Πακέτα προς εγκατάσταση
Για BIOS/MBR σύστημα
Αντιγραφή αρχείων Windows
Μετατροπή του USB σε εκκινήσιμο (bootable)
Για UEFI/GPT σύστημα
Σημειώσεις
WinUSB
Πακέτα προς εγκατάσταση
Πίσω στα περιεχόμενα →
Ως διανομή επίδειξης θα πάρουμε το Ubuntu και αυτό διότι εκεί έχω δοκιμάσει τον οδηγό και λειτουργεί σωστά.
Τα πακέτα που πρέπει να εγκαταστήσουμε ενδέχεται να είναι ήδη εγκατεστημένα στην διανομή μας, αλλά για να είμαστε απόλυτα σίγουροι, ανοίγουμε ένα τερματικό και δίνουμε την παρακάτω εντολή.
sudo apt-get install gparted grub-pc-bin p7zip-full ntfs-3g
Θα χωρίσουμε τον οδηγό σε δυο σκέλη. Πρώτα θα δούμε την εφαρμογή του σε BIOS/MBR συστήματα και έπειτα σε UEFI/GPT.
Σημείωση:
Θα επισημάνω ότι τον συγκεκριμένο οδηγό τον έχω δοκιμάσει μόνο σε BIOS/MBR σύστημα καθώς μόνο τέτοιο διαθέτω.
Για BIOS/MBR σύστημα
Πίσω στα περιεχόμενα →
Σε αυτή την περίπτωση υποθέτουμε ότι έχουμε ένα σύστημα με BIOS (ακόμη και CSM – BIOS legacy mode).
USB Format
Θα κάνουμε ένα format στο USB stick, χρησιμοποιώντας το πρόγραμμα Gparted, σε σύστημα αρχείων NTFS.
Σε περίπτωση που δεν το έχετε εγκατεστημένο, εγκαταστήστε το με την παρακάτω εντολή σε ένα τερματικό
sudo apt-get install -y gparted
Πρώτα κάνουμε αποπροσάρτηση το USB
Και έπειτα επιλέγουμε «Μορφοποίηση σε» και ntfs ως σύστημα αρχείων.
Αφού ολοκληρωθεί η διαδικασία, πατάμε στις πληροφορίες ώστε να πάρουμε το UUID το οποίο δημιουργήθηκε διότι θα μας χρειαστεί παρακάτω. Αντιγράψτε το σε έναν κειμενογράφο, πχ τον gedit.
Αντιγραφή αρχείων Windows
Πίσω στα περιεχόμενα →
Η επόμενη ενέργεια είναι η αντιγραφή όλων των αρχείων από το ISO των Windows στο USB stick. Εδώ θα εκτελέσουμε μια σειρά από εντολές, μιας και την δουλειά θα την κάνουμε μέσω τερματικού.
1. mkdir WINDOWS (δημιουργία καταλόγου με το όνομα WINDOWS, μέσα στον προσωπικό μας κατάλογο)
2. ls (Βλέπουμε τα περιεχόμενα του προσωπικού μας καταλόγου, έτσι για να πιστοποιήσουμε ότι ο κατάλογος WINDOWS δημιουργήθηκε)
3. cd /media/USERNAME/LABEL/PATH/TO/WINDOWS/ (Εδώ συνδεόμαστε μέσα στον κατάλογο ο οποίος περιέχει το Windows ISO. Φυσικά και αντικαθιστούμε ανάλογα τα USERNAME , LABEL, PATH/TO/WINDOWS.)
4. ls (Πάλι με την ls πιστοποιούμε ότι βρισκόμαστε στον σωστό κατάλογο. Βλέπουμε στο συγκεκριμένο παράδειγμα το αρχείο ονόματι Windows_8.1.ISO)
5. sudo mount -o loop Windows_8.1.ISO ~/WINDOWS (Με αυτή την εντολή κάνουμε προσάρτηση το ISO ως τόμο, μέσα στον WINDOWS κατάλογο που δημιουργήσαμε. Το σύμβολο ~ συμβολίζει τον προσωπικό μας κατάλογο. Το αποτέλεσμα αυτής της εντολής θα είναι η δημιουργία μιας εισαγωγής στον Nautilus(Files) με όνομα UDF Volume)
6. cd (Με την εντολή cd χωρίς παραμέτρους γυρνάμε στον προσωπικό μας κατάλογο).
7. ls WINDOWS/ (Βλέπουμε τα περιεχόμενα του καταλόγου WINDOWS. Να δούμε δηλαδή αν έχει όντως γίνει η προσάρτηση σωστά. Θα πρέπει να δούμε τα αρχεία του ISO εκεί.)
8. rsync -aAXv WINDOWS/* /media/USERNAME/LABEL (αντιγράφουμε ΟΛΑ τα αρχεία του καταλόγου WINDOWS (του ISO δηλαδή) στο USB. Φυσικά θα κάνετε αντικατάσταση των USERNAME και LABEL με τα δικά σας).
Μόλις τελειώσει η διαδικασία μπορούμε να πιστοποιήσουμε ότι τα αρχεία βρίσκονται πλέον μέσα στο USB stick, ανοίγοντας την τοποθεσία του USB στον File Manager (Nautilus).
Μετατροπή του USB σε εκκινήσιμο (bootable)
Πίσω στα περιεχόμενα →
Αν και αυτό το βήμα θα μπορούσαμε να το κάνουμε και προηγουμένως, όταν είχαμε το Gparted ανοιχτό, επέλεξα να το γράψω ως ξεχωριστό μιας και μαζί με το επόμενο βήμα (της εγκατάστασης του GRUB) εξυπηρετούν τον ίδιο σκοπό.
Ανοίγουμε το Gparted και το μόνο που κάνουμε εκεί είναι ένα δεξί κλικ στο USB και μέσω της «Διαχείρισης Σημαιών» τοποθετούμε την σημαία boot.
Θα πρέπει να δούμε πλέον την σημαία boot.
Η εγκατάσταση του GRUB στο USB stick θα εξασφαλίσει την εκκίνηση του Windows Installer.
Με την παρακάτω εντολή, εγκαθιστούμε τον GRUB στο USB stick δίνοντάς του το σωστό boot directory.
sudo grub-install --target=i386-pc --boot-directory=/media/USERNAME/LABEL/boot /dev/sd?
Αντικαθιστούμε τα USERNAME, LABEL και sd? με τα δικά μας.
Αφού τελειώσει η διαδικασία το τελευταίο βήμα είναι η δημιουργία ενός αρχείου ονόματι grub.cfg μέσα στον κατάλογο boot/grub στο USB stick μας.
Εδώ χρησιμοποιώ τον gedit απευθείας από το τερματικό. Θυμηθείτε ότι στον gedit (ή όποιον άλλο κειμενογράφο χρησιμοποιούμε) έχουμε ήδη ανοίξει εκείνο το αρχείο με το UUID. Σε εμένα το παρουσιάζει ως «Ανώνυμο Έγγραφο». Δείτε παρακάτω.
Μέσα στο κενό αρχείο grub.cfg γράφουμε τα παρακάτω:
echo "Boot from Windows USB Drive" insmod ntfs insmod search_fs_uuid insmod chain search --no-floppy --fs-uuid <UUID> --set root chainloader +1 boot
Αντικαθιστούμε το UUID με το σωστό.
Αποθηκεύουμε το αρχείο και κάνουμε μια αποπροσάρτηση (ή ασφαλή κατάργηση) του USB.
Πλέον είμαστε έτοιμοι να εκκινήσουμε από αυτό.
Επισήμανση
Θα επισημάνω εδώ ότι την διαδικασία εγκατάστασης των Windows δεν την ολοκλήρωσα. Δοκίμασα τον οδηγό και λειτουργεί μέχρι το σημείο όπου φορτώνουν τα αρχεία των Windows και εμφανίζει την αρχική οθόνη εγκατάστασης.
Για UEFI/GPT σύστημα
Πίσω στα περιεχόμενα →
Κάνω για δεύτερη φορά αυτή την επισήμανση.
Την διαδικασία δημιουργίας εκκινήσιμου USB για UEFI/GPT σύστημα δεν την έχω δοκιμάσει καθόλου, μιας και δεν διαθέτω τέτοιο σύστημα. Δεν γνωρίζω 100% αν η παρακάτω διαδικασία θα λειτουργήσει σωστά.
Μιας και θα χρησιμοποιήσουμε τα ίδια εργαλεία, θα γράψω την διαδικασία συνοπτικά επισημαίνοντας τις αλλαγές (τι το διαφορετικό έχει) σε σχέση με την BIOS/MBR.
1. Αφού κάνουμε αποπροσάρτηση το USB μέσω Gparted, κάνουμε κλικ στο «Συσκευή» → «Δημιουργία πίνακα κατατμήσεων» και επιλέγουμε GPT.
2. Αντί για NTFS, δημιουργούμε FAT32 σύστημα αρχείων στο USB stick, όταν κάνουμε Format μέσω του Gparted.
3. Ακολουθούμε την ίδια διαδικασία για να αντιγράψουμε όλα τα αρχεία του Windows ISO στο USB stick.
4. Κοιτάμε στο USB stick μέσα στον κατάλογο boot/efi να πιστοποιήσουμε ότι υπάρχει ένα αρχείο ονόματι bootx64.efi
5. Σε περίπτωση που δεν υπάρχει το αρχείο, ανοίγουμε το αρχείο sources/install.wim (εδώ θα χρειαστούμε το 7z), πλοηγούμαστε στο ./1/Windows/Boot/EFI και κάνουμε εξαγωγή(extract) το αρχείο bootmgfw.efi και έπειτα το μετονομάζουμε σε bootx64.efi. Τέλος, το μεταφέρουμε στον κατάλογο efi/boot (μέσα στο USB stick).
6. Αν θέλουμε να δημιουργήσουμε ένα αντίγραφο των Windows 7, τότε θα αντιγράψουμε όλο τον κατάλογο boot/ από το efi/microsoft στον κατάλογο efi/.
7. Κάνουμε μια ασφαλή κατάργηση του USB stick και δοκιμάζουμε να κάνουμε εκκίνηση από αυτό μέσω του UEFI.
Σημειώσεις:
- Όπως βλέπετε στην παραπάνω διαδικασία (UEFI/GPT), παραλείπεται το βήμα εγκατάστασης του GRUB στο USB stick. Πιθανών δεν χρειάζεται καν, μιας και ο UEFI boot manager του υπολογιστή μας μάλλον θα κάνει αυτή τη δουλειά.
- Ο οδηγός είναι βασισμένος σε αυτή την απάντηση από το AskUbuntu.
- Υπάρχει ένα πρόγραμμα του οποίου στόχος είναι η διευκόλυνση/αυτοματοποίηση της παραπάνω διαδικασίας. Λέγεται WinUSB και το αποθετήριο που το φιλοξενεί βρίσκεται εδώ. Δεν το έχω δοκιμάσει, καθώς από τα σχόλια σε αυτή την απάντηση στο AskUbuntu είδα ότι δεν λειτουργεί σωστά. Επίσης είδα πως αναβαθμίστηκε πρόσφατα (ενώ ήταν ανενεργό για 87 εβδομάδες, σύμφωνα με τα στατιστικά του Launchpad). Είναι μια εναλλακτική του παραπάνω οδηγού και αν λειτουργεί σωστά είναι σίγουρα ευκολότερο στην χρήση.
Για να το δοκιμάσετε-εγκαταστήσετε απλά εκτελείτε τις παρακάτω εντολές σε ένα τερματικό - Τον συγκεκριμένο οδηγό τον έχω δοκιμάσει και λειτουργεί σε ότι αφορά την διαδικασία BIOS/MBR.
Σε ότι αφορά UEFI/GPT δεν γνωρίζω αν λειτουργεί όπως πρέπει(τρίτη φορά το λέω).
Μένει να δοκιμάσετε.
sudo add-apt-repository ppa:colingille/freshlight sudo apt-get update sudo apt-get install winusb