
雖然我很早就聽說過elementary這個linux發(fā)行版,但是直到最近我才發(fā)現(xiàn),與最美發(fā)行版之間差的是一臺很好的屏幕。另一個機緣巧合是,我多了一個80G的機械移動硬盤。廢話不多說了,我們開始:)
我們的目標(biāo)是讓移動硬盤可以同時兼容UEFI+GPT與BIOS+MBR
首先到官網(wǎng)下載iso的鏡像。
在download下選擇torrent,這樣會快一點,如果你用迅雷的話。
制作u盤啟動盤
隨便找個工具做個u盤啟動盤,或者如果跟我一樣本身用Ubuntu并且是用grub的話,可以改下grub.cfg讓grub加載iso鏡像。
先給移動硬盤分下區(qū)
這一步可是重點,關(guān)乎成敗。
我是直接用的parted命令。
首先分一個15G 的ext4的分區(qū),用來裝系統(tǒng)。
然后分一個512兆的fat32的分區(qū),用來做esp,記得添加boot與esp標(biāo)志。這是為了UEFI而服務(wù)的。
然后分一個只有1M的分區(qū),不用管類型,只記得添加bios_grub標(biāo)志。這個是為了讓gpt的分區(qū)表可以兼容mbr,否則后面grub-install會出錯。
最后留60G用來發(fā)揮移動硬盤的身作用……
將elementary os的live啟動起來,然后選擇安裝
將系統(tǒng)安裝在剛剛的第一個15G的分區(qū)里就好。
使用grub來進行引導(dǎo)。
首先是bios+mbr的
方法是grub-install --boot-directory=DIR /dev/sdb 注意后面是整個sdb設(shè)備就好。
接著是UEFI 的
方法一樣是grub-install命令:
grub2-install--efi-directory=DIR --boot-directory=DIR --bootloader-id=GRUB2 --removable /dev/sdb2
上面的DIR都是放grub文件夾的,他會在DIR下自動生成grub需要的文件,我們要做的就是再在grub下寫個grub.cfg文件用來顯示啟動項。
寫grub.cfg文件
這個很簡單,關(guān)鍵是啟動項:
menuentry 'elementary' --class elementary --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-afc0f1d3-dc37-41cd-b407-f608c77888c5' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd1,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt1 --hint-efi=hd1,gpt1 --hint-baremetal=ahci1,gpt1 afc0f1d3-dc37-41cd-b407-f608c77888c5
else
search --no-floppy --fs-uuid --set=root afc0f1d3-dc37-41cd-b407-f608c77888c5
fi
linux /boot/vmlinuz-4.13.0-41-generic root=UUID=afc0f1d3-dc37-41cd-b407-f608c77888c5 ro quiet splash $vt_handoff
initrd /boot/initrd.img-4.13.0-41-generic
}
submenu 'elementary 高級選項' $menuentry_id_option 'gnulinux-advanced-afc0f1d3-dc37-41cd-b407-f608c77888c5' {
menuentry 'elementary,Linux 4.13.0-41-generic' --class elementary --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.13.0-41-generic-advanced-afc0f1d3-dc37-41cd-b407-f608c77888c5' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd1,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt1 --hint-efi=hd1,gpt1 --hint-baremetal=ahci1,gpt1 afc0f1d3-dc37-41cd-b407-f608c77888c5
else
search --no-floppy --fs-uuid --set=root afc0f1d3-dc37-41cd-b407-f608c77888c5
fi
echo '載入 Linux 4.13.0-41-generic ...'
linux /boot/vmlinuz-4.13.0-41-generic root=UUID=afc0f1d3-dc37-41cd-b407-f608c77888c5 ro quiet splash $vt_handoff
echo '載入初始化內(nèi)存盤...'
initrd /boot/initrd.img-4.13.0-41-generic
}
完成,可以都換幾個電腦試試
