如何把Linux系統(tǒng)移植到U盤或移動硬盤上懂讯,并從USB驅(qū)動器中啟動并運行?下面我將教大家制作隨身攜帶台颠、即插即用的Linux操作系統(tǒng)褐望。(把當前系統(tǒng)移植到移動硬盤上)
為什么需要這個功能呢?
- 安裝串前、修復系統(tǒng)瘫里;電腦系統(tǒng)出了問題,插上就可以對損壞系統(tǒng)修復荡碾。這不同于簡單的LiveCD谨读,你配置好后的Linux系統(tǒng)極其強大。
- 工作中我們同樣可以使用這個系統(tǒng)坛吁,回到家里插在自己電腦上繼續(xù)工作劳殖;保持進度不變铐尚。
- 把U盤插到其他電腦,同樣可以運行哆姻,走到哪里就可以帶到哪里宣增,相當于私人獨家系統(tǒng)。
準備工作
硬件:
- 移動硬盤 推薦SSD
- 裝有Linux的電腦一臺
- 裝有Linux LiveCD系統(tǒng)的啟動盤
軟件:
Linux發(fā)行版自帶的工具 如 gparted grub cp
制作
Linux啟動盤的制作分為以下幾個步驟:分區(qū)填具、復制文件统舀、安裝grub并配置匆骗、測試劳景。目的是把當前系統(tǒng)移植到移動硬盤上。
分區(qū)
從LiveCD啟動碉就,打開gparted分區(qū)工具盟广,把移動硬盤的分區(qū)表改為GPT 。我使用以下分區(qū)方案:
分區(qū) | 描述 | 文件系統(tǒng) | 標志 | 大小 |
---|---|---|---|---|
sdb1 | EFI系統(tǒng)分區(qū) | FAT32 | boot efi | 300M |
sdb2 | 數(shù)據(jù)分區(qū) | NTFS | 300G | |
sdb3 | 深度系統(tǒng)根目錄分區(qū) | EXT4 | 40G |
sdb1是UEFI+GPT模式下的引導分區(qū)瓮钥,grub引導器就要裝在這里筋量。
sdb2是放數(shù)據(jù)的,為了與Winodws兼容所以采用NTFS碉熄。
sdb3是Linux系統(tǒng)的全部內(nèi)容桨武,如果你想把家目錄單獨分出來也可以。
后面留空備用锈津,結(jié)果如下圖
復制文件
我原系統(tǒng)的文件儲存在 /dev/nvme0n1p3 (根分區(qū))和 /dev/nvme0n1p4 (家分區(qū))上呀酸,把這兩個分區(qū)掛載到 /mnt /mnt/home。每個人的分區(qū)情況不同琼梆,需要對應修改性誉。掛載后,/mnt 目錄包括原系統(tǒng)的所有內(nèi)容茎杂。
掛載 /dev/sdb3 到 /media/backup错览,把 /mnt 內(nèi)容全部復制到 /media/backup
cp -a /mnt/* /media/backup/
安裝grub
GRUB 提供一個安裝程序grub-install用以安裝 GRUB 到磁盤,下面是grub-install的一些常用參數(shù)及選項:
--boot-directory=DIR
指定 boot 目錄煌往,用于存放 GRUB 的相關(guān)文件倾哺,包括其鏡像、模塊及字體等刽脖,同時 GRUB 也會從該目錄讀取配置文件羞海,此參數(shù)缺省為/boot,則 GRUB 的相關(guān)文件都在/boot/grub下曾棕,配置文件路徑為/boot/grub/grub.cfg扣猫。
--target=TARGET
指定要安裝的 GRUB 類型(對應不同的 BIOS 啟動模式),常用的可選參數(shù)有 i386-pc翘地、x86_64-efi申尤、i386-efi 等癌幕,對應的文件會被安裝到 <boot directory>/grub/<target>/(<boot directory>為--boot-directory參數(shù)指定的 boot 目錄,默認為/boot)下
--force
即使遇到報錯仍然強制安裝
UEFI 特有參數(shù)及選項:
--efi-directory=DIR
指定 EFI 系統(tǒng)分區(qū)的根目錄昧穿,即 EFI 系統(tǒng)分區(qū)的掛載點
--removable
為移動設(shè)備安裝勺远,將 GRUB 安裝到U盤時必須使用此選項
掛載 /dev/sdb1 到 /media/backup/boot/efi ,把grub安裝到移動硬盤上
grub-install --target x86_64-efi --removable --boot-directory=/media/backup/boot --efi-directory=/media/backup/boot/efi
上面的 --boot-directory --efi-directory --removable 不可省略时鸵。
安裝之后要修改grub配置文件胶逢,就讓他自動生成好了。但要禁用os-prober功能——自動探測硬盤上的其他操作系統(tǒng)然后生成配置饰潜。Linux To Go 不依賴于其他操作系統(tǒng)初坠,它的啟動菜單里只有自己。注意彭雾,不要使用update-grub碟刺,因為它會修改UEFI啟動項。
chroot /media/backup/
chmod -x /etc/grub.d/30_os-prober
grub-mkconfig -o /boot/grub/grub.cfg
修改 /media/backup/etc/fstab薯酝,把UUID換成對應的值
# /dev/nvme0n1p3 LABEL=primary
UUID=932200a3-ff33-48a4-a1c9-23da8cd5d964 / ext4 rw,relatime,data=ordered 0 1
# /dev/nvme0n1p4 LABEL=primary
UUID=d973e1bb-cd0a-40e8-91c0-c6c3f8d31355 /home ext4 rw,relatime,data=ordered 0 2
測試
安裝grub后半沽,還要手動修改 /media/backup/etc/fstab 。Linux To Go只需要自動掛載兩個分區(qū)—— sdb1 ESP 和 sdb3 DEEPIN_ROOT吴菠,修改對應的UUID者填。
現(xiàn)在可以重啟試試了。開機按下F12 UEFI啟動菜單中有移動硬盤這個啟動項做葵,選擇即可占哟。
如果成功就OK;如果黑屏斷電蜂挪,查看/media/backup/boot/efi 下的文件 把BOOTX64.EFI刪除重挑,把 grubx64.efi 重命名為 BOOTX64.EFI 再重啟。