如何給一塊新硬盤安裝grub,讓它成為一個只有一個內核的系統
阿新 • • 發佈:2017-09-09
libc key 分區類型 con mount 問題 2.6 usr grub.conf (1)先關機
(2)添加一塊硬盤
(3)將硬盤分區,/dev/sdb1為boot分區,/dev/sdb2為swap分區, /dev/sdb3為根分區
(4)調整/dev/sdb2的分區類型為82,指定為swap分區
(5)給/dev/sdb1、/dev/sdb3創建ext4創建文件系統,給/dev/sdb2創建swap文件系統
mkfs -t ext4 /dev/sdb1
mkfs -t ext4 /dev/sdb3
mkswap /dev/sdb2
(6)在/mnt下創建boot目錄
mkdir /mnt/boot
(7)掛載boot分區
mount /dev/sdb1 /mnt/boot
(8)使用grub-install工具安裝grub
grub-install --root-directory=/mnt /dev/sdb
(9)將/boot/目錄下的vmlinuz、initramfs 拷貝到 /mnt/boot目錄下
cp /boot/vmlinuz-2.6.32-504.el6.x86_64 /mnt/boot/vmlinuz
cp /boot/initramfs-2.6.32-504.el6.x86_64.img /mnt/boot/initramfs.img
(10)在/mnt下創建一個根掛載點,將根分區掛載
mkdir /mnt/root
mount /dev/sdb3 /mnt/root
(11)先刪除根下的lost+found目錄, 再創建根下的結構
rm -fr /mnt/root/lost+found
cd /mnt/root/
mkdir bin boot dev etc home lib lib64 media mnt opt proc root sbin srv sys tmp usr var
(12)將bash程序和ls程序拷貝到/mnt/boot/bin目錄下
cp /bin/bash /mnt/root/bin/
cp /bin/ls /mnt/root/bin/
(13)使用ldd命令查看bash程序和ls程序所依賴的C庫接口
ldd /bin/bash
ldd /bin/ls
(14)再將bash程序 和 ls程序所依賴的庫拷貝到/mnt/root/lib64/目錄下(從第二個庫文件開始拷貝)
cp /lib64/libtinfo.so.5 /mnt/root/lib64/
cp /lib64/libdl.so.2 /mnt/root/lib64/
cp /lib64/libc.so.6 /mnt/root/lib64/
cp /lib64/ld-linux-x86-64.so.2 /mnt/root/lib64/
cp /lib64/libselinux.so.1 /mnt/root/lib64/
cp /lib64/librt.so.1 /mnt/root/lib64/
cp /lib64/libcap.so.2 /mnt/root/lib64/
cp /lib64/libacl.so.1 /mnt/root/lib64/
cp /lib64/libc.so.6 /mnt/root/lib64/
cp /lib64/libdl.so.2 /mnt/root/lib64/
cp /lib64/ld-linux-x86-64.so.2 /mnt/root/lib64/
cp /lib64/libpthread.so.0 /mnt/root/lib64/
cp /lib64/libattr.so.1 /mnt/root/lib64/
(15)編輯/mnt/boot/grub/grub.conf文件, 添加如下內容
default=0
timeout=5
hiddenmenu
title CentOS 6 yhy
root (hd0,0)
kernel /vmlinuz ro root=/dev/sda3 selinux=0 init=/bin/bash
initrd /initramfs.img
(16)先切換根試一試
chroot /mnt/root
(17)如果在本機上做根切換沒有問題,那麽再創建一個新的虛擬機,這個新的虛擬機的硬盤使用剛剛創建的硬盤
(18)如果在啟動後,可以使用ls命令顯示根下的目錄結構,說明grub安裝完畢,這就是一個沒有應用程序的內核
如何給一塊新硬盤安裝grub,讓它成為一個只有一個內核的系統