Я намагаюся встановити старе зображення Linux Linux 2.6.32.69 тільки для навчальних цілей. Машина ubuntu 15.10 32-бітна. Командами для складання ядра є:
make oldconfig
make bzImage
make modules
sudo make modules_install
Після цього я отримую bzImage
під арку / i386 / boot та a System.map
. Я перейменую bzImage на vmlinuz-2.6.32-69-generic та переходжу до / boot /. Потім перейменуйте System.map на System.map-2.6.32-69-generic та перейдіть до / boot /. Потім я додаю запис у /boot/grub/grub.cfg, скопіювавши існуючий запис та внісши деякі зміни:
menuentry 'Ubuntu, with Linux 2.6.32-69-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-2.6.32-69-generic-advanced-20b066c2-67ba-4e36-82d6-6cdd552c4be7' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 20b066c2-67ba-4e36-82d6-6cdd552c4be7
else
search --no-floppy --fs-uuid --set=root 20b066c2-67ba-4e36-82d6-6cdd552c4be7
fi
echo 'Loading Linux 2.6.32-69-generic ...'
linux /boot/vmlinuz-2.6.32-69-generic root=UUID=20b066c2-67ba-4e36-82d6-6cdd552c4be7 ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.2.0-18-generic
}
Однак коли я перезавантажуюсь і вибираю щойно вставлений запис, я отримав:
Я не впевнений, що я роблю неправильно. Дякую!
Звідки ви взяли конфігураційний файл для ядра?
—
Пол
@Paul Type зробить oldconfig і всі виберуть за замовчуванням. (продовжуйте натискання клавіші Enter) Не впевнений, чи це те саме, що і зробити defconfig.
—
темношкірий
make oldconfig
використовує наявний конфігураційний файл, а потім запитує будь-які пояснення щодо нових параметрів, які може підтримувати нове ядро. Я запитую, звідки в першу чергу взявся конфігураційний файл - ви використовували той, який вже працював?
@Paul Ні, я не став. Я просто розпаковую папку і введіть make oldconfig. Тоді просять мене вибрати багато конфігурацій. Тоді я просто продовжував натискати на вхід. Потім він генерує файл .config.
—
темношкірий
Проблема може виникнути через використання initrd з іншої версії ядра. Інітрд завантажить модулі, необхідні для отримання дисків видимими для ядра. Або цього не сталося, або символьних посилань для UUID немає. Якщо
—
Пол
ls -l /dev/[hs]da*
вам нічого не дасть, вам потрібно буде відновити інтрид.