當(dāng)前位置:首頁 > 幫助中心 > Linux 制作U盤啟動系統(tǒng)
Linux 制作U盤啟動系統(tǒng)
前兩天公司一linux系統(tǒng)被誤刪除文件,進(jìn)不了系統(tǒng)了,里面的數(shù)據(jù)很重要,為了把硬盤中的數(shù)據(jù)進(jìn)行恢復(fù),想了多個辦法,當(dāng)然很多辦法是可行的,比如把硬盤拿下來掛在另一個linux系統(tǒng)上,把數(shù)據(jù)考出來;比如跳過控制臺進(jìn)入系統(tǒng)進(jìn)行考數(shù)據(jù)。后來我就想制作一個U盤啟動的linux系統(tǒng),以后做些東西就比較方便了,所以就研究了兩個小時,下面是制作的過程,以供大家分享。在進(jìn)行mknod時,著實看了不少的英語文檔,后來終于明白了。
1.分區(qū):(插上U盤)
# fdisk /dev/sdb
d Enter 刪除原有分區(qū)
n Enter 新建一個主分區(qū)
w Enter 保存設(shè)置
# partprobe /dev/sdb 刷新U盤
2.設(shè)定U盤分區(qū)為活動分區(qū)
# fdisk /dev/sdb
a Enter 設(shè)定為活動分區(qū)
1 Enter 選擇分區(qū)
3.對硬盤分區(qū)進(jìn)行格式化,格式化成ext3格式
# mkfs.ext3 /dev/sdb1
二.裝filesystem包 (目的:生成根下的root,usr,var ...等目錄)
1.配置好yum
2.加載U盤到/net下
# mount /dev/sdb1 /net
3.安裝
# yum -y install --installrot=/net filesystem
安裝完成后,可查看/net下生成了多個目錄
三.加載系統(tǒng)啟動項
1.# cp /boot/vmlinuz-2.6.18-128.el5 /net/boot/
2.生成initrd.img `uname -r`為取系統(tǒng)版本號
# mkinitrd --with=usb-storage /net/boot/initrd-usb.img `uname -r`
3.查看/net/boot/下是否有vmlinuz和initrd
四.制作boot loader(grub)
1.# yum -y install --installroot=/net grub
2.grub.conf不成自動生成,要手工創(chuàng)建
# cp /boot/grub/grub.conf /net/boot/grub/grub.conf 并作修改
# cat /net/boot/grub.conf
default = 0
timeout = 5
title redhat-usb-linux
root(hd0,0)
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sdb1 init=/dev/bash
initrd /boot/initrd-usb.img
此處填寫的內(nèi)容要與/net/boot/grub/下的文件名一致
五.安裝命令庫文件
# yum -y install --installroot=/net bash coreutils pam setup vim-enhanced vim-minimal util-
linux net-tools SysVinit passwd shadow-utils authconfig
可通過rpm -qf /bin/mount 查看包名
此時chroot /net下可使用剛才安裝的命令了
六.創(chuàng)建磁盤分區(qū)
# mknod /net/dev/sdb b 8 16
# mknod /net/dev/sdb1 b 8 17
b表示塊設(shè)備,8為主設(shè)備號,16、17為次設(shè)備號
--------------------------
| 有關(guān)設(shè)備號的解釋:
| 1.對于一塊SCSI/SATA硬盤(格式為sd*),主設(shè)備號為8,
| 第一塊硬盤的次設(shè)備號為0-15,第二塊硬盤的次設(shè)
| 備號為16-31,依次類推。因為對于硬盤來說,主分
| 區(qū)最多為4個,可以3個主分區(qū)1個擴(kuò)展分區(qū),擴(kuò)展分
| 區(qū)仍然可以再分區(qū),但是分區(qū)的總數(shù)最多為16個,所
| 以每一塊硬盤的次設(shè)備號為16個(0-15,16-31)。
| 2.對于一塊IDE硬盤(格式為hd*),主設(shè)備號為3,次設(shè)
| 備號第一塊為0-63,第二塊為64-127。
| 3.# ls -l /dev/sd*
| brw-r----- 1 root disk 8, 0 10-16 14:53 /dev/sda
| brw-r----- 1 root disk 8, 1 10-16 14:54 /dev/sda1
| brw-r----- 1 root disk 8, 2 10-16 14:53 /dev/sda2
| brw-r----- 1 root disk 8, 3 10-16 14:54 /dev/sda3
| brw-r----- 1 root disk 8, 16 10-16 15:50 /dev/sdb
| brw-r----- 1 root disk 8, 17 10-16 15:50 /dev/sdb1
| brw-r----- 1 root disk 8, 32 10-16 15:50 /dev/sdc
| brw-r----- 1 root disk 8, 36 10-16 15:50 /dev/sdc4
| 以上是我一臺主機(jī)上插了1個硬盤,兩個U盤的顯示情況,我
| 們可以看到設(shè)備號的顯示情況。
| 4.在linux中一切皆文件,硬件也是通過文件體現(xiàn)出來的,所
| 有硬件設(shè)備都在/dev/有所顯示。
| 5.更具體的設(shè)備號研究可以查看下面的文件。
| # yum install kernel-doc
| # /usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt
---------------------------
七.
1.創(chuàng)建mtab
# cat /net/etc/mtab
/dev/sdb1 / ext3 rw 0 0
2.創(chuàng)建fstab
# cat /net/etc/fstab
/dev/sdb1 / ext3 default 1 1
八.安裝grub
# chroot /net
# grub-install /dev/sdb1
注:
1.如果創(chuàng)建硬盤分區(qū)的時候沒有配置正確,在第八步會報錯:
the file /boot/grub/stage1 not read correctly
2.在用U盤啟動后,進(jìn)入到U盤中的系統(tǒng),此時我們可以用已經(jīng)
安裝過的命令集,但是此時的文件系統(tǒng)是只讀的,我們不能vim,
mount等的操作,此時必須用下面這個命令,進(jìn)行重新讀寫掛載:
# mount -o remount,rw /
重掛載后,就可以了。
(責(zé)任編輯:大白菜官網(wǎng) eraitsolution.com)