Δημοσιεύτηκε: 10 Δεκ 2013, 02:03
Είσαι ωραίος!
Λοιπόν, δοκίμασα το chainloading. Έφτιαξα ένα 40_custom στο Ubuntu 14.04 με μια καταχώριση chainloading για το Lubuntu 13.10.
Στο Lubuntu έδωσα grub-install στο διαμέρισμα που βρίσκεται το λειτουργικό.
Αν και πήρα το παρακάτω σφάλμα,
Υποθέτω πως αυτό που μένει να κάνω είναι να προσθέσω στο 40_custom καταχωρίσεις chainloading για κάθε λειτουργικό ξεχωριστά.
Θα ήθελα όμως να δούμε και την περίπτωση της αυτόματης προσθήκης του 40_custom σε όλες τις άλλες διανομές μιας και κάτι τέτοιο είναι πιο ευέλικτο.
Αυτό που θέλω να κάνω είναι να «κόψω» από το /boot/grub/grub.cfg ένα κομμάτι που ξεκινά με "### BEGIN /etc/grub.d/10_linux ###" και καταλήγει σε "### END /etc/grub.d/10_linux ###".
Αν τα strings αυτά τα βάλω στην sed, οι κάθετοι μου χαλάνε τη σύνταξή της. Έτσι, προσπαθώ να κόψω τις ανάλογες γραμμές.
Βρίσκω την 1η με
Έτσι, μπορώ να δώσω την
Όταν λοιπόν δίνω την sed με τους αριθμούς γραμμών, η εντολή εκτελείται κανονικά.
Αν όμως αποθηκεύσω τους 2 αριθμούς σε μεταβλητές, πχ με
και μετά βάλω τις μεταβλητές στην sed, τότε δεν μου επιστρέφει αποτέλεσμα.
Ξέρει κάποιος πως μπορώ να χρησιμοποιήσω τις μεταβλητές $fs και $fe στην sed ή κάποιον άλλον τρόπο αυτοματοποίησης της διαδικασίας;

Λοιπόν, δοκίμασα το chainloading. Έφτιαξα ένα 40_custom στο Ubuntu 14.04 με μια καταχώριση chainloading για το Lubuntu 13.10.
Στο Lubuntu έδωσα grub-install στο διαμέρισμα που βρίσκεται το λειτουργικό.
Αν και πήρα το παρακάτω σφάλμα,
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
Lubuntu 13.10 - 3.11.0-14-generic:~$ sudo grub-install --force /dev/sda3
/usr/sbin/grub-bios-setup: warning: File system `ext2' doesn't support embedding.
/usr/sbin/grub-bios-setup: warning: Η ενσωμάτωση είναι αδύνατη. Ο GRUB δύναται μόνον να εγκατασταθεί σ' αυτό το σύνολο με την χρήση λιστών μπλοκ. Όμως, οι λίστες μπλοκ είναι αναξιόπιστες και η χρήση τους δεν συνιστάται..
Installation finished. No error reported.

Υποθέτω πως αυτό που μένει να κάνω είναι να προσθέσω στο 40_custom καταχωρίσεις chainloading για κάθε λειτουργικό ξεχωριστά.
Θα ήθελα όμως να δούμε και την περίπτωση της αυτόματης προσθήκης του 40_custom σε όλες τις άλλες διανομές μιας και κάτι τέτοιο είναι πιο ευέλικτο.
Αυτό που θέλω να κάνω είναι να «κόψω» από το /boot/grub/grub.cfg ένα κομμάτι που ξεκινά με "### BEGIN /etc/grub.d/10_linux ###" και καταλήγει σε "### END /etc/grub.d/10_linux ###".
Αν τα strings αυτά τα βάλω στην sed, οι κάθετοι μου χαλάνε τη σύνταξή της. Έτσι, προσπαθώ να κόψω τις ανάλογες γραμμές.
Βρίσκω την 1η με
- Κώδικας: Επιλογή όλων
echo $( cat -n /boot/grub/grub.cfg | grep "### BEGIN /etc/grub.d/10_linux ###") | cut -c1-3
- Κώδικας: Επιλογή όλων
echo $( cat -n /boot/grub/grub.cfg | grep "### END /etc/grub.d/10_linux ###") | cut -c1-3
Έτσι, μπορώ να δώσω την
- Κώδικας: Επιλογή όλων
sed -n 'αποτέλεσμα-1,αποτέλεσμα-2`p' /boot/grub/grub.cfg
Όταν λοιπόν δίνω την sed με τους αριθμούς γραμμών, η εντολή εκτελείται κανονικά.
Αν όμως αποθηκεύσω τους 2 αριθμούς σε μεταβλητές, πχ με
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
fs=`echo $( cat -n /boot/grub/grub.cfg | grep "### BEGIN /etc/grub.d/10_linux ###") | cut -c1-3`
fe=`echo $( cat -n /boot/grub/grub.cfg | grep "### END /etc/grub.d/10_linux ###") | cut -c1-3`
και μετά βάλω τις μεταβλητές στην sed, τότε δεν μου επιστρέφει αποτέλεσμα.
Ξέρει κάποιος πως μπορώ να χρησιμοποιήσω τις μεταβλητές $fs και $fe στην sed ή κάποιον άλλον τρόπο αυτοματοποίησης της διαδικασίας;