nikolaos_ Δημοσ. 29 Οκτωβρίου 2023 Δημοσ. 29 Οκτωβρίου 2023 Λοιπόν, έχω δυο Linux συστήματα στο ίδιο μηχάνημα. Προέκυψε από παλιά, είχε χαλάσει ένα παλιό μηχάνημα με Linux Mint (παλιά έκδοση) και τοποθέτησα το δίσκο του παλιού στο καινούργιο που έχω τώρα, πάλι με Linux Mint. Στην εκκίνηση το grub βρίσκει και το καινούργιο και το παλιό και βγάζει το μενού ποιο θέλω να ξεκινήσω (κάποιο grub-update πρέπει να είχα τρέξει όταν είχα κάνει την μεταφορά του δίσκου και τα είχε βρει). Με το μενού του grub στην εκκίνηση φυσικά εκκινεί είτε το ένα, είτε το άλλο, ανάλογα τι θα διαλέξω. Στο καινούργιο έχω ήδη KVM Virtual Machine manager (τρέχω κάτι παλιά windows 7 μάλιστα) και αναρωτήθηκα, αν είναι δυνατόν να φτιάξω μια ακόμη εικονική μηχανή (VM) που να τρέχει το παλιό Linux με host το καινούργιο φυσικά. Δηλαδή στη VM να ανήκει ο παλιός δίσκος σαν physical. Και να γλιτώσω από το dual boot, να βγαίνω από το ένα να μπαίνω στο άλλο. Ένα στοιχείο που μπορεί να περιπλέκει ή και όχι, είναι ότι οι δίσκοι των Linux έχουν LVM partitions. Έτσι η VM θα πρέπει να "βλέπει" τουλάχιστον το LVM root partition που έχει μέσα ο παλιός δίσκος. Από το λίγο ψάξιμο που έκανα είδα ότι μπορεί να χρειαστεί ένα μικρό virtual disk στη VM για να χρησιμεύσει σαν boot partition της, και όχι να μπλέξω με το physical boot partition του host (καινούργιου) μηχανήματος. Δεν είναι πρόβλημα αλλά δεν ξέρω πώς να κάνω σωστά την δουλειά, ώστε το virtual boot partition να προσαρτήσει το LVM root partition και να ξεκινήσει το Linux μέσα στη VM. Αν δεν σας μπέρδεψα και αν το έχετε, θέλω τις ιδέες σας. Νομίζω πως έχει να κάνει περισσότερο με το πώς να εγκαταστήσω σωστά το grub.
tsofras Δημοσ. 29 Οκτωβρίου 2023 Δημοσ. 29 Οκτωβρίου 2023 59 λεπτά πριν, nikolaos_ είπε Λοιπόν, έχω δυο Linux συστήματα στο ίδιο μηχάνημα. Προέκυψε από παλιά, είχε χαλάσει ένα παλιό μηχάνημα με Linux Mint (παλιά έκδοση) και τοποθέτησα το δίσκο του παλιού στο καινούργιο που έχω τώρα, πάλι με Linux Mint. Στην εκκίνηση το grub βρίσκει και το καινούργιο και το παλιό και βγάζει το μενού ποιο θέλω να ξεκινήσω (κάποιο grub-update πρέπει να είχα τρέξει όταν είχα κάνει την μεταφορά του δίσκου και τα είχε βρει). Με το μενού του grub στην εκκίνηση φυσικά εκκινεί είτε το ένα, είτε το άλλο, ανάλογα τι θα διαλέξω. Στο καινούργιο έχω ήδη KVM Virtual Machine manager (τρέχω κάτι παλιά windows 7 μάλιστα) και αναρωτήθηκα, αν είναι δυνατόν να φτιάξω μια ακόμη εικονική μηχανή (VM) που να τρέχει το παλιό Linux με host το καινούργιο φυσικά. Δηλαδή στη VM να ανήκει ο παλιός δίσκος σαν physical. Και να γλιτώσω από το dual boot, να βγαίνω από το ένα να μπαίνω στο άλλο. Ένα στοιχείο που μπορεί να περιπλέκει ή και όχι, είναι ότι οι δίσκοι των Linux έχουν LVM partitions. Έτσι η VM θα πρέπει να "βλέπει" τουλάχιστον το LVM root partition που έχει μέσα ο παλιός δίσκος. Από το λίγο ψάξιμο που έκανα είδα ότι μπορεί να χρειαστεί ένα μικρό virtual disk στη VM για να χρησιμεύσει σαν boot partition της, και όχι να μπλέξω με το physical boot partition του host (καινούργιου) μηχανήματος. Δεν είναι πρόβλημα αλλά δεν ξέρω πώς να κάνω σωστά την δουλειά, ώστε το virtual boot partition να προσαρτήσει το LVM root partition και να ξεκινήσει το Linux μέσα στη VM. Αν δεν σας μπέρδεψα και αν το έχετε, θέλω τις ιδέες σας. Νομίζω πως έχει να κάνει περισσότερο με το πώς να εγκαταστήσω σωστά το grub. Αν κατάλαβα καλά θες να μετατρέψεις τον δεύτερο δίσκο σε VM? Δεν ξέρω μπερδεύτηκα λίγο με το grub το σχέση έχει αν όντως θες να κάνεις αυτό Αν κατάλαβα σωστά είτε θα μετατρέψεις τον δίσκο σε image , επειδή το είχα ψάξει σε κάποια φάση είτε με πληρωμένο VMware είτε με utility του virtual box ( disk2hd νομίζω) Αλλιώς μπορείς να πάρεις ένα back up , να στήσεις την διανομή σε VM και να την κάνεις restore μέσα στο VM Αν δεν κατάλαβα καλά συγνώμη
nikolaos_ Δημοσ. 30 Οκτωβρίου 2023 Μέλος Δημοσ. 30 Οκτωβρίου 2023 Ακόμη κι αν ήθελα να αντιγράψω 500GB δίσκου physical σε αρχείο image, μέσα στον άλλο δίσκο του host, δεν αξίζει. Ούτε και το /dev/vg_mint20/lv_root που έχει κάπου 50 GB από τα 500. Η VM θα πρέπει να βλέπει το partition αυτό όπως είναι, ένα LVM partition πάνω σε physical δίσκο με το root του Linux. Αυτό που σκεφτόμουν είναι να κατασκευάσω ένα VM με λίγα GB (αν όχι MB) image δίσκου, με ένα boot partition (virtual) το οποίο θα κάνει όταν ξεκινά mount το LVM partition που ανέφερα και θα συνεχίζει από εκείνο την εκκίνηση.
duffyduck Δημοσ. 31 Οκτωβρίου 2023 Δημοσ. 31 Οκτωβρίου 2023 (επεξεργασμένο) Στο VMware μπορεις να χρησιμοποιήσεις ένα φυσικό HDD. Θεωρητικά: αρχικά θα πρέπει να φτιάξεις έναν virtual disk στον οποίο θα εγκαταστήσεις το Grub. Οπότε φτιάχνεις virtual machine για το linux mint (on vm creation choose ubuntu 64-bit config for guest) και έπειτα αφού την δημιουργήσεις θα κάνεις edit στα virtual machine settings (της συγκεκριμένης vm). Μετά πας στο Hard Disk πατάς κάτω κάτω στο add και προσθέτεις τον φυσικό δίσκο που θέλεις. Αυτά θεωρητικά γίνονται, τώρα αν θα φορτώσει με την πρώτη δεν ξέρω. Μπορείς να εγκαταστήσεις το grub, αφου πρώτα βάλεις στην vm και τον φυσικό δίσκο. Επεξ/σία 31 Οκτωβρίου 2023 από duffyduck
Aris_ Δημοσ. 31 Οκτωβρίου 2023 Δημοσ. 31 Οκτωβρίου 2023 (επεξεργασμένο) On 30/10/2023 at 06:47, nikolaos_ said: Ακόμη κι αν ήθελα να αντιγράψω 500GB δίσκου physical σε αρχείο image, μέσα στον άλλο δίσκο του host, δεν αξίζει. Ούτε και το /dev/vg_mint20/lv_root που έχει κάπου 50 GB από τα 500. Η VM θα πρέπει να βλέπει το partition αυτό όπως είναι, ένα LVM partition πάνω σε physical δίσκο με το root του Linux. Αυτό που σκεφτόμουν είναι να κατασκευάσω ένα VM με λίγα GB (αν όχι MB) image δίσκου, με ένα boot partition (virtual) το οποίο θα κάνει όταν ξεκινά mount το LVM partition που ανέφερα και θα συνεχίζει από εκείνο την εκκίνηση. κοιτα οτι γινεται ναι αφου φτιαξεις το vm μπες και δωσε path ολο τον ssd με το ονομα του απο τον host , δοκιμαζεις και βλεπεις Επεξ/σία 31 Οκτωβρίου 2023 από Aris_
nikolaos_ Δημοσ. 8 Νοεμβρίου 2023 Μέλος Δημοσ. 8 Νοεμβρίου 2023 (επεξεργασμένο) Λοιπόν μετά από λίγο διάβασμα, ξεκίνησα μια πιο αυτοσχέδια διαδικασία που με πήγε κάπου. Όπως είπα και στο πρώτο ποστ, στο φυσικό σύστημα έχω δυο Linux, ένα Mint και ένα παλιότερο Mint. Το δεύτερο κατοικοεδρεύει σε ένα LVM partition, πιο συγκεκριμένα: lsblk /dev/sda MAJ:MIN NAME SIZE TYPE MODEL KNAME LABEL FSTYPE MOUNTPOINT 8:0 sda 931,5G disk TOSHIBA DT0 sda 8:1 └─sda1 927,5G part sda1 LVM2_member 253:2 ├─vg_mint-lv_root 400G lvm dm-2 old_mint_root ext4 /media/nik/old_mint_root 253:4 └─vg_mint-lv_home 527,3G lvm dm-4 old_mint_home ext4 /media/nik/old_mint_home Ο σκοπός μου είναι να κάνω boot μέσα σε VM (qemu) το σύστημα που βρίσκεται στο /dev/sda1 με KVM host το Linux Mint που τρέχω τώρα. Παρατηρήστε ότι το /dev/sda1 δεν έχει MBR. Αυτό επειδή ουσιαστικά τα δυο logical volumes του εικονικού volume group αντιγράφηκαν σε άλλους physical δίσκους από εκείνους στους οποίους είχαν κατασκευαστεί. Επομένως χρειαζόμουν ένα εικονικό δίσκο MBR. Εκτελώ τα ακόλουθα: dd if=/dev/zero of=disk.img bs=1M count=512 sudo gdisk disk.img Command (? for help): o This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): y Command (? for help): n Partition number (1-128, default 1): First sector (34-262110, default = 2048) or {+-}size{KMGTP}: Last sector (2048-262110, default = 262110) or {+-}size{KMGTP}: +1M Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): ef02 Changed type of partition to 'BIOS boot partition' Επειδή όμως έκανα πολλά trial and error, τα νούμερα που έχω επικολλήσει, είναι ενδεικτικά. Γενικά όλα τα στάδια έχουν περάσει από βάσανο. Βλέπετε όμως ότι έφτιαξα ένα disk.img 512MB που το φορμάρω σαν MBR δίσκο με 2 partitions: Command (? for help): p Disk disk.img: 1048576 sectors, 512.0 MiB Sector size (logical): 512 bytes Disk identifier (GUID): 10EF41AA-2865-47FF-BBAB-FB94716A290C Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 1048542 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 4095 1024.0 KiB EF02 BIOS boot partition 2 4096 1048542 510.0 MiB 8300 Linux filesystem Αντί για kpartx πήρα την προσέγγιση με losetup: sudo losetup /dev/loop0 disk.img sudo losetup --offset $((4096*512)) --sizelimit $(((1048542-4096+1)*512)) /dev/loop1 disk.img sudo mkdosfs -F 32 /dev/loop1 sudo mkdir /mnt/drive sudo mount /dev/loop1 /mnt/drive (Το δεύτερο Linux filesystem partition δεν βρήκα να το χρειάζομαι, αλλά ακόμη δεν τέλειωσα με τις δοκιμές μου.) Με αυτό πετυχαίνω να έχω ένα εικονικό boot partition για το παλιό Linux. Κάνω compile και εγκατάσταση του GRUB 2.06 μέσα (κατεβάζω, ./configure, make κλπ.) στο boot partition. ./grub-install --target=i386-pc --directory=grub-core --root-directory=/mnt/drive/ --modules="normal part_msdos part_gpt multiboot" --no-floppy /dev/loop0 Installing for i386-pc platform. ./grub-install: warning: cannot open directory `/usr/local/share/locale': No such file or directory. Installation finished. No error reported. Οπότε τώρα είχα την μισή εικονική έτοιμη: qemu-system-x86_64 -drive format=raw,file=disk.img Φυσικά δεν είχα καμία εικόνα Linux στο άλλο partition. Έκανα copy από το /boot στο /dev/vg_mint/lv_root, δηλαδή sudo cp /media/nik/old_mint_root/boot/* /mnt/drive/boot Επίτηδες μόνο το /boot, για να μην επικαλύψω το /boot/grub, αλλά τέλοσπάντων δεν πετυχαίνουν τα μπουταρίσματα από εκεί, γιατί πρώτα πρέπει να βρω τρόπο να κάνει mount το lv_root. Έτσι κατέφυγα στο επόμενο τέχνασμα: sudo modprobe nbd sudo qemu-nbd --connect=/dev/nbd0 /dev/vg_mint/lv_root sudo chmod o+rw /dev/nbd0 Το τελευταίο για να μην τρέχω με sudo το Qemu: qemu-system-x86_64 -m 2G -drive format=raw,file=disk.img -drive file=/dev/nbd0 Τα επόμενα στο grub prompt τα έχω γράψει εγώ φυσικά. Το (hd0, gpt2) είναι το boot από το εικονικό disk.img ενώ το (hd1) είναι το /dev/nbd0 δηλαδή το /dev/vg_mint/lv_root Τώρα το παλιό mint έτυχε να έχει τις εικόνες vmlinuz και initrd.img μέσα στο lv_root. Δεν θα χάσω και τίποτε, σκέφτηκα, να κάνω από εκείνο την εκκίνηση: Όχι μόνο δεν έχασα, αλλά πήγε και να μπουτάρει. Με πέταξε όμως σε ένα initramfs prompt και δεν έχω καταλάβει πόσο προχώρησε η διαδικασία εκκίνησης στον εικονικό δίσκο lv_root. Επιπλέον, δεν ξέρω τι να κάνω στο "BusyBox" με το initramfs prompt προκειμένου να βγω στο παλιό mint (γραφικά κλπ.) Ίσως φταίει ότι δεν καθόρισα γραφικά στη γραμμή εντολών του qemu. Ίσως πρέπει να σκαρώσω πιο σοβαρά μια εικονική μηχανή στο Virtual Machine Manager... Περιμένω ένα feedback αν καταλαβαίνει κάποιος τι έχω κάνει και πόσο έχω προχωρήσει εκεί που θέλω... Θα ακολουθήσει άλλος γύρος δοκιμών προσεχώς. Ευχαριστώ! Επεξ/σία 8 Νοεμβρίου 2023 από nikolaos_
Λύση nikolaos_ Δημοσ. 8 Νοεμβρίου 2023 Μέλος Λύση Δημοσ. 8 Νοεμβρίου 2023 Τι πέτυχε τελικά: sudo chmod o+rw /dev/mapper/vg_mint-lv_root sudo chmod o+rw /dev/mapper/vg_mint-lv_home qemu-system-x86_64 -m 2G -drive format=raw,file=disk.img -drive format=raw,file=/dev/mapper/vg_mint-lv_root -drive format=raw,file=/dev/mapper/vg_mint-lv_home -boot c Στο grub prompt ο φάκελος /boot αντιστοιχεί στο περιεχόμενο στο αρχείο disk.img grub> linux /boot/vmlinuz-4.19.2compiled root=/dev/sdb grub> initrd /boot/initrd.img-4.19.2compiled grub> boot Αυτό που δεν είχα καταλάβει (και το κατάλαβα εξερευνώντας στο initramfs prompt τον φάκελο /dev) ήταν αυτό στην πρώτη γραμμή, ότι το /dev/mapper/vg_mint-lv_root αντιστοιχεί στο /dev/sdb μέσα στην εικονική μηχανή. Οπότε με το root=/dev/sdb (δεν έχει sdb1) είναι mountable και μπόρεσε να προχωρήσει η εκκίνηση. Αυτό που χρειάζομαι τώρα είναι "χτένισμα" να βάλω δηλαδή το GRUB σωστά στον disk.img να έχει κατάλληλο vmlinuz και intird.img, μενού, κλπ. Μήπως έχετε κανένα link για το πώς γίνεται το update στο disk.img, δηλαδή χωρίς να πειράξω τους άλλους /boot ?
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα