闡述備份Linux內核步驟
作者:佚名
隨著學習Suse的深入,面臨的問題也是越來越多,Suse編譯內核是非常頭疼的,今天編譯Suse 10.2內核直接導致Suse面臨重裝,要是備份Linux內核就好了,本文就是介紹備份Linux內核的簡單步驟。
隨著學習Suse的深入,面臨的問題也是越來越多,Suse編譯內核是非常頭疼的,今天編譯Suse 10.2內核直接導致Suse面臨重裝,要是備份Linux內核就好了,備份Linux內核相當的簡單,下面就是步驟,英文也很簡單,相信準備對內核有所動作的人都能輕易看懂。雖然是針對Suse寫的,其它Linux發行版本也大同小異,下面就是備份Linux內核的簡單步驟:
- 1) open terminal
- 2) su to root
- 3) change directory to /boot
- #cd /boot
- 4) see what are the names of running kernels
- #ls
- 5) make backup copy of your kernel and System.map
- #cp vmlinuz-2.6.18.8-0.1-default vmlinuz-2.6.18.8-0.1-bak
- #cp System.map-2.6.18.8-0.1-default System.map-2.6.18.8-0.1-bak
- #cp -R /lib/modules/2.6.18.8-0.1-default /lib/modules/2.6.18.8-0.1-bak
- 6) create initrd
- #mkinitrd -s 1024×768
- 7) check if new initrd was created:
- #ls
- and look for initrd-2.6.18.8-0.1-bak
- 8) make backup of your current GRUB menu (in the case that you may screw up editing)
- #cp /boot/grub/menu.lst /boot/grub/menu.lst_bak
- 9) edit grub menu whatever editor (I use vi, but you may use kedit.gedit, joe, pico and so on as long as you run editor with root privileges)
- boot/grub/menu.lst
- 10) add new entry at the end of the file (copy original entry for Suse Linux 10.2):
- title Suse Linux 10.2 kernel backup
- root (hd0,0)
- kernel /vmlinuz-2.6.18.8-0.1-bak root=/dev/sda2 vga=0×317 vga=normal video=vesa:1024×768@60 resume=/dev/sda3 elevator=deadline splash=silent showopts
- initrd /initrd-2.6.18.8-0.1-bak
- important changes are marked bold. You may not have the other stuff or it may be different. Simply keep the rest of the file exactly the same as in the original entry for Suse Linux 10.2
- 11) save the file
- 12) restart computer and select from GRUB menu “Suse Linux 10.2 kernel backup”
- if system boots successfully you have working kernel backup, now if Suse updates kernel next time and new kernel will not boot properly, you can always boot to Suse Linux 10.2 kernel backup which will never be modified (and safe from screwed updates)
- 舉一反三的令一種方法:
- ideally would be do something different:
- 1) install kernel sources
- 2) su to root
- 3) copy kernel sources to the new direcory:
- #cp -R /usr/src/Linux-2.6.18.8-0.1 /usr/src/Linux-2.6.18.8-0.1-bak
- 4) change directory to /usr/src/Linux-2.6.18.8-0.1-bak
- #cd /usr/src/Linux-2.6.18.8-0.1-bak
- 5) create config file
- #make oldconfig
- 6) change kernel name (super important!!!)
- by editing .config file (in /usr/src/Linux-2.6.18.8-0.1-bak) Tehre is a dot before “config”
- scroll down to the line:
- #
- # General setup
- #
- CONFIG_LOCALVERSION=”"
- and change local kernel name version by adding:
- CONFIG_LOCALVERSION=”-bak”
- if there is anything already written in the line
- CONFIG_LOCALVERSION=”"
- delete old name remember that new name must have quotation marks.
- 7) save file
- 8) compile kernel
- #make bzImage && make modules && make modules_install && make install
- You just created a new kernel! Exactly the same as the running one but the name will have “-bak” at the end
- there is nothing more required. in your GRUB menu will appear a new entry pointing to the new kernel. Old kernel will not be affected (if you did exactly as I suggested)
- new kernel is invisible to Yast and will never be changed.
- Because the latest kernel upgrade is a real disaster I would make backup copy of grub menu (as root):
- #cp /boot/grub/menu.lst /boot/grub/menu.lst_bak
- now you can boot to the new kernel
- you will get to command line (when booting to the new kernel) if you installed nvidia/ati drivers,
- That is easy to fix of course. what is important, you have working Suse setup in spite of all Suse devs efforts to screw you up
通過我的介紹,這篇簡單的備份Linux內核的文章會對你有幫助。其實我的主要目的就是提醒各位應用Linux的朋友,記得要備份Linux內核。
【編輯推薦】
責任編輯:小霞
來源:
eNet硅谷動力