Δημιουργία multi liveUSB με openSUSE
Εδώ και αρκετό καιρό έψαχνα να δημιουργήσω ένα liveUSB με πολλές διανομές. Ο λόγος που έψαχνα κάτι τέτοιο είναι διότι τα περισσότερα USB είναι σχετικά μεγάλα και η χρήση μόνο μιας διανομής, σας αχρηστεύει τον χώρο αυτό. Παράδειγμα τα USB που έχω πάρει από τα συνέδρια openSUSE. Είναι 8GB. Εάν βάλω μέσα το ISO από το DVD, είναι μόνο 4GB. Χάνω δηλαδή περίπου 4GB. Εάν βάλω δε ΜΟΝΟ το live GNOME, τότε χάνω περισσότερο (υπάρχει βέβαια persistent χώρος για αποθήκευση, αλλά περιπτώσεις live media για εγκατάσταση, ο χώρος δεν μας χρειάζεται).
Για τον λόγο αυτό, έχω δοκιμάσει 2 προγράμματα.
1. Multisystem.
Το πρόγραμμα αυτό το μετέφρασα. Δυστυχώς εγκαθίστανται μόνο σε Ubuntuοειδή και Debianοειδή. Παλαιότερα το χρησιμοποίησα σε Arch Linux αλλά τελευταία κάπου δεν μου δούλευε σωστά. Στα Ubuntoειδή, μόνο την 13.1 μπόρεσα να εισάγω και τελευταία μάλιστα και αυτό κολούσε. Στο τέλος κάθε εισαγωγής, έβλεπα στο τερματικό καποια σύμβολα για αρκετή ώρα, με έναν εκνευριστικό ήχο (τον οποίο και έκλεινα). Στην 13.2 εισάγανε το persistent και μάλλον αυτό ήταν που δεν εισάγανε οι τύποι που το φτιάξανε.
Επίσης δεν δεχόταν DVD ISO αλλά ούτε και NET install του openSUSE.
Οι άλλες διανομές (κυρίως με βάση το Ubuntu), αλλά και εργαλεία εισήχθησαν μια χαρά.
2. YUMI
Αυτό δουλεύει σε Windows. Στο κάτω μέρος της σελίδας, γράφει μια έκδοση για Ubuntu/Debian. Δεν τις δοκίμασα αν δουλεύουν. Ίσως να το κάνω σε κάποιο liveUSB.
Με το εργαλείο αυτό, δημιούργησα ένα παλιό USB που είχα των 512ΜΒ, με εκδόσεις NET install. Το μόνο "αρνητικό" ότι δεν χώρεσαν τα αρχεία που ήθελα. Αν και θεωρητικά χωρούσαν διότι είναι μέχρι 90ΜΒ το καθένα επί 4 που ειναι, δεν τα χώρεσε. Δεν πειράζει, τουλάχιστον δουλεύει και μπορώ να χρησιμοποιήσω ένα άχρηστο USB που είχα παροπλισμένο.
Με την βοήθεια του φίλου μου του Θάνου, δημιούργησα ένα liveUSB με τις εκδόσεις GNOME+KDE του Tumbleweed. Θα γράψω εδώ πως το έκανα με πιθανές περιπτώσεις. Αρχικά χρησιμοποίησα το Arch wiki και έναν οδηγό που μου υπέδειξε ο Θάνος.
Πάμε να δούμε τα βήματα:
1. Δημιουργήστε μια κατάτμηση FAT32
Εάν χρησιμοποιείτε τερματικό,θα χρειαστείτε τις εντολές:
$ cat /proc/partitions #για να βρείτε πως αναγνωρίζει το στικάκι
$ sudo umount /dev/sdX1 #αποπροσαρτήστε το στικάκι σας. Σε εσάς μπορεί να έχει άλλη ονομασία
$ sudo mkfs.vfat -n MULTIBOOT /dev/sdX1
$ sudo umount /dev/sdX1 #αποπροσαρτήστε το στικάκι σας. Σε εσάς μπορεί να έχει άλλη ονομασία
$ sudo mkfs.vfat -n MULTIBOOT /dev/sdX1
Μπορείτε να διαμορφώσετε το USB με σύστημα αρχείων ext4. Οι αντιγραφές των ISO θα γίνονται με προσοχή για τα δικαιώματα.
2. Φτιάξτε 2 καταλόγους (boot και iso) μέσα στο στικάκι. Ανάλογα με την διανομή σας, μπορεί να το προσαρτεί σε διαφορετικό σημείο.
$ sudo mkdir /media/USERNAME/MULTIBOOT/{boot,iso} #σε Ubuntoειδή
$ sudo mkdir /run/media/USERNAME/MULTIBOOT/{boot,iso} #σε Arch/openSUSE
$ sudo mkdir /run/media/USERNAME/MULTIBOOT/{boot,iso} #σε Arch/openSUSE
εάν σας μπέρδεψαν τα παραπάνω, απλά εισέλθετε μέσα στο MULTIBOOT και δημιουργήστε τους καταλόγους με το mkdir.
3. Εγκαταστήστε το grub (η παρακάτω εντολή δεν μου δούλεψε σε openSUSE. Ήθελε να εγκαταστήσω κάτι ακόμα μάλλον).
$ sudo grub-install --force --no-floppy --root-directory=/media/USERNAME/MULTIBOOT/boot /dev/sdX #σε Ubuntoειδή
$ sudo grub2-install --target=i386-pc --recheck --boot-directory=/run/media/USERNAME/MULTIBOOT/boot /dev/sdX #σε openSUSE
$ sudo grub2-install --target=i386-pc --recheck --boot-directory=/run/media/USERNAME/MULTIBOOT/boot /dev/sdX #σε openSUSE
4. Αντιγράψτε τα ISO που θέλετε μέσα στον κατάλογο iso του USB. Εγώ χρησιμοποίησα τα LiveISO για το tumbleweed.
5. Δημιουργήστε ένα αρχείο grub.cfg
Εδώ παίζονται όλα τα λεφτά.
$ nano /media/USERNAME/MULTIBOOT/boot/grub/grub.cfg #σε Ubuntoειδή
και εισάγετε το κείμενο
# Config for GNU GRand Unified Bootloader (GRUB)
# /boot/grub/grub.cfg
# Timeout for menu
set timeout=30
# Default boot entry
set default=0
# Menu Colours
set menu_color_normal=white/black
set menu_color_highlight=white/green
# Path to the partition holding ISO images (using UUID)
#set imgdevpath="/dev/disk/by-uuid/UUID_value"
# ... or...
# Path to the partition holding ISO images (using device labels)
#set imgdevpath="/dev/disk/by-label/label_value"
set imgdevpath="/dev/disk/by-label/MULTIBOOT"
# Boot ISOs
menuentry '[NET-DVD]openSUSE-13.1-DVD-x86_64' {
set isofile='/iso/openSUSE-13.1-DVD-x86_64.iso'
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux install=hd:$isofile
initrd (loop)/boot/x86_64/loader/initrd
}
menuentry '[LIVE]openSUSE-13.1-KDE-Live-x86_64' {
set isofile='/iso/openSUSE-13.1-KDE-Live-x86_64.iso'
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux isofrom_device=$imgdevpath isofrom_system=$isofile LANG=en_US.UTF-8
initrd (loop)/boot/x86_64/loader/initrd
}
# /boot/grub/grub.cfg
# Timeout for menu
set timeout=30
# Default boot entry
set default=0
# Menu Colours
set menu_color_normal=white/black
set menu_color_highlight=white/green
# Path to the partition holding ISO images (using UUID)
#set imgdevpath="/dev/disk/by-uuid/UUID_value"
# ... or...
# Path to the partition holding ISO images (using device labels)
#set imgdevpath="/dev/disk/by-label/label_value"
set imgdevpath="/dev/disk/by-label/MULTIBOOT"
# Boot ISOs
menuentry '[NET-DVD]openSUSE-13.1-DVD-x86_64' {
set isofile='/iso/openSUSE-13.1-DVD-x86_64.iso'
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux install=hd:$isofile
initrd (loop)/boot/x86_64/loader/initrd
}
menuentry '[LIVE]openSUSE-13.1-KDE-Live-x86_64' {
set isofile='/iso/openSUSE-13.1-KDE-Live-x86_64.iso'
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux isofrom_device=$imgdevpath isofrom_system=$isofile LANG=en_US.UTF-8
initrd (loop)/boot/x86_64/loader/initrd
}
Στο παραπάνω, μέσα σε αγκύλες, είναι οι καταχωρήσεις για live media και για NET-DVD (αλλάζετε την περιγραφή και το όνομα αρχείου). Θεωρητικά, μπορείτε να μετονομάζετε συνέχεια το νέο αρχείο έτσι όπως το καταχωρήσατε (πχ να το καταχωρήσετε openSUSE-DVD-x86_64.iso και να αντιγράφετε μόνο αυτό).
Στο live, έχετε υπόψιν, ότι θα περιμένετε λίγο για να ανοίξει.
Εάν θέλετε να εισάγετε άλλη διανομή, απλά δείτε στο wiki.
Κάποια παραδείγματα από menuentry που έχω χρησιμοποιήσει είναι τα:
menuentry 'NetBoot CD 6.2' {
set isofile='/iso/NetbootCD-6.2.iso'
loopback loop $isofile
linux (loop)/boot/vmlinuz isoloop=$isofile
initrd (loop)/boot/nbinit4.gz
}
menuentry "kali-linux-amd64" {
set isofile='/iso/kali-linux-1.0.7-amd64.iso'
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali
initrd (loop)/live/initrd.img
}
menuentry 'Antergos Minimal 2015.08.18 64bit' {
set isofile='/iso/antergos-minimal-2015.08.18-x86_64.iso'
loopback loop $isofile
linux (loop)/arch/boot/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile
initrd (loop)/arch/boot/archiso.img
}
menuentry 'Antergos Minimal 2015.08.18 32bit' {
set isofile='/iso/antergos-minimal-2015.08.18-i686.iso'
loopback loop $isofile
linux (loop)/arch/boot/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile
initrd (loop)/arch/boot/archiso.img
}
menuentry 'Architect Linux 64bit' {
set isofile='/iso/architect-2015.09.06-64bit.iso'
loopback loop $isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile
initrd (loop)/arch/boot/x86_64/archiso.img
}
menuentry 'Architect Linux 32bit' {
set isofile='/iso/architect-2015.09.06-32bit.iso'
loopback loop $isofile
linux (loop)/arch/boot/i686/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile
initrd (loop)/arch/boot/i686/archiso.img
}
menuentry "PCLinuxOS MATE 32bit 2014.12" {
search --set -f "/iso/pclinuxos-mate-2014.12.iso"
loopback loop "/iso/pclinuxos-mate-2014.12.iso"
linux (loop)/isolinux/vmlinuz fromusb root=UUID=E4B7-5B93 bootfromiso=/iso/pclinuxos-mate-2014.12.iso livecd=livecd apci=on splash=silent fstab=rw,noauto unionfs toram
initrd (loop)/isolinux/initrd.gz
}
set isofile='/iso/NetbootCD-6.2.iso'
loopback loop $isofile
linux (loop)/boot/vmlinuz isoloop=$isofile
initrd (loop)/boot/nbinit4.gz
}
menuentry "kali-linux-amd64" {
set isofile='/iso/kali-linux-1.0.7-amd64.iso'
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali
initrd (loop)/live/initrd.img
}
menuentry 'Antergos Minimal 2015.08.18 64bit' {
set isofile='/iso/antergos-minimal-2015.08.18-x86_64.iso'
loopback loop $isofile
linux (loop)/arch/boot/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile
initrd (loop)/arch/boot/archiso.img
}
menuentry 'Antergos Minimal 2015.08.18 32bit' {
set isofile='/iso/antergos-minimal-2015.08.18-i686.iso'
loopback loop $isofile
linux (loop)/arch/boot/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile
initrd (loop)/arch/boot/archiso.img
}
menuentry 'Architect Linux 64bit' {
set isofile='/iso/architect-2015.09.06-64bit.iso'
loopback loop $isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile
initrd (loop)/arch/boot/x86_64/archiso.img
}
menuentry 'Architect Linux 32bit' {
set isofile='/iso/architect-2015.09.06-32bit.iso'
loopback loop $isofile
linux (loop)/arch/boot/i686/vmlinuz archisodevice=/dev/loop0 img_dev=$imgdevpath img_loop=$isofile
initrd (loop)/arch/boot/i686/archiso.img
}
menuentry "PCLinuxOS MATE 32bit 2014.12" {
search --set -f "/iso/pclinuxos-mate-2014.12.iso"
loopback loop "/iso/pclinuxos-mate-2014.12.iso"
linux (loop)/isolinux/vmlinuz fromusb root=UUID=E4B7-5B93 bootfromiso=/iso/pclinuxos-mate-2014.12.iso livecd=livecd apci=on splash=silent fstab=rw,noauto unionfs toram
initrd (loop)/isolinux/initrd.gz
}
ΣΥΜΒΟΥΛΗ: Προτιμήστε να κάνετε φορμάτ σε ext4. Έτσι θα μπορείτε να βάζετε και DVD μέσα. Η μόνη "διαφορά" θα είναι ότι πρέπει να αντιγράφετε τα ISO ως διαχειριστής.
ΑπάντησηΔιαγραφή