Неможливо знайти кореневий пристрій під час завантаження нового зображення ядра


0

Я намагаюся встановити старе зображення 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.
темношкірий

1
Проблема може виникнути через використання initrd з іншої версії ядра. Інітрд завантажить модулі, необхідні для отримання дисків видимими для ядра. Або цього не сталося, або символьних посилань для UUID немає. Якщо ls -l /dev/[hs]da*вам нічого не дасть, вам потрібно буде відновити інтрид.
Пол
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.