Partition

在 USB 驅動器上安裝 Kali Linux

  • May 21, 2019

我想將 Kali Linux 安裝在 64 GB 的 USB 驅動器上,並且想把它帶到任何地方並將其插入任何 PC 並啟動並執行我的設置。IOW 我只想要一個像 USB 上完整的 Kali Linux 攜帶式安裝這樣的 HDD。

我不想要 Live boot 或持久性或任何東西,我顯然想將它安裝在那個 USB 上,就像我們通常在 HDD 上安裝 Kali Linux 一樣。

我想提供一些有關我的內部硬碟的資訊 -

root@Kali:~# fdisk -l
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ST500DM009-2F110
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 0BBC9B99-EE7E-11E8-8BD6-843C86F9DFC6
Device         Start       End Sectors     Size Type
/dev/sda1       2048   1126399 1124352     549M Microsoft basic data
/dev/sda2    1126400 210561023 209434624  99.9G Microsoft basic data
/dev/sda3  210561024 210765823 204800      100M EFI System
/dev/sda4  210765824 315623423 104857600    50G Linux filesystem
/dev/sda5  315623424 328206335 12582912      6G Linux swap
/dev/sda6  328206336 537921535 209715200   100G Linux filesystem
/dev/sda7  537921536 976773134 438851599 209.3G Microsoft basic data

Disk /dev/sdb: 57.9 GiB, 62109253632 bytes, 121307136 sectors
Disk model: Ultra          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BC1A35EC-FF80-4CCB-BD61-30F7FF3CDA4A
Device        Start End       Sectors    Size  Type
/dev/sdb1      2048 206847    204800     100M  EFI System
/dev/sdb2    206848 68567039  68360192   32.6G Linux filesystem
/dev/sdb3  68567040 76380159  7813120    3.7G  Linux swap
/dev/sdb4  76380160 121305087 44924928   21.4G Linux filesystem

/dev/sda是我在 UEFI 模式下以雙啟動方式安裝了 Windows 10 + Manjaro 的內部硬碟。

/dev/sdb是我要安裝 Kali Linux 的目標 64 GB USB 驅動器。你在這裡看到的/dev/sdb是我的 Kali Linux 的目前安裝(我的第三次嘗試)。

我從 Kali Linux 官方下載頁面下載了 Kali Linux KDE 2019 ISO,使用 Rufus 在另一個備用 16 GB USB 中以 DD 模式進行實時啟動。我刪除了目標 USB 上的所有分區並使其未分配。從 Live USB 啟動,選擇圖形安裝程序,完成所有過程,直到分區。

我選擇了手動分區方法,然後將我的目標 USB 分區(如/dev/sdc安裝程序中所示)如下 -

SCSIl (0,0,0) (sdc) - 62.1 GB
>                       1.0 MB              FREE SPACE
>   #1   /dev/sdc1    104.9 MB    B    K    ESP         EFI system partition
>   #2   /dev/sdc2     35.0 GB         f    ext4        /
>   #3   /dev/sdc3      4.0 GB         f    swap        swap
>   #4   /dev/sdc4     23.1 GB         f    ext4        /home
>                       1.0 MB              FREE SPACE

我檢查了所有內容,尤其是 EFI 分區中的可引導標誌“on”。在確保一切正常後,我繼續安裝。點擊 Continue 後我注意到的一件不尋常的事情是我只在我的/dev/sdc.也列出要在那里格式化。我認為這很奇怪,因為分區時我什至沒有觸摸,但我忽略了它並點擊了繼續。系統安裝成功,完成安裝並重新啟動。還拿出了Live USB記憶棒。/dev/sdc``swap``/dev/sda``/dev/sda

到現在為止還挺好。

得到 grub 螢幕,選擇 Kali 和繁榮!我遇到的第一件事是(initramfs)出現黑屏,因為 grub 無法找到根分區/dev/sdc(注意:安裝時目標 USB 是/dev/sdc,但在移除 Live USB 記憶棒後它變成了/dev/sdb)。所以我通過重新啟動回到 grub 並按下“e”並將 root 的設備路徑從 更改/dev/sdc2/dev/sdb2. 按 F10 並引導我進入我的 Kali Linux 桌面,耶!

好吧,不是那麼好。我剛剛啟動 GParted 以檢查我的所有分區是否完好無損,令我驚訝的是,我看到不是我創建的 EFI 分區,而是安裝/dev/sdb了 EFI 分區,/dev/sda安裝了根、交換和主分區,/dev/sdb並且也安裝了交換分區/dev/sda!哇!

/dev/sdb安裝預期安裝的 EFI 分區!/boot/efi

這讓我頭暈目眩,我再次嘗試了上述步驟,但得到了相同的結果。然後我在某處讀到目標 USB 驅動器上必須已經存在 EFI 分區,所以我也嘗試了,但沒有結果。

所以我關閉了系統並將 USB 插入另一台筆記型電腦以查看它是否工作,但是一旦我啟動啟動菜單,就沒有從 USB 啟動的選項。我嘗試禁用舊版支持和安全啟動。還嘗試添加啟動選項,但 USB 的文件系統中沒有可用的 EFI 文件。Kali 的 EFI 文件在我的內部硬碟的文件系統中與 Manjaro 和 Windows 一起可用,這清楚地表明 EFI 文件已安裝在/dev/sda.

我需要找出這裡發生了什麼,出了什麼問題,我該如何解決這個問題,以及如何實現我上面提到的目標

我終於解決了這個問題!

使用這個 wiki - https://wiki.debian.org/GrubEFIReinstall

首先,啟動你的 Linux 系統並用 Kali 插入你的 USB,從終端掛載 USB 的所有分區,發出blkid並保留 U 盤上所有分區的 UUID。/etc/sftab在USB 上打開/並確保其中提到的所有分區都通過 UUID 安裝,這樣您就不會將系統與要載入的分區混淆。我會添加discard,noatime,commit=600並請從 USB 驅動器中刪除交換分區,交換它是 .

例子:

UUID=739cbe4a-82c1-46cb-8bb1-dbce3259d1f8 / ext4 discard,noatime,commit=600,defaults 0 2

您可能還必須編輯 grub 配置以使用 UUID 來查找根目錄。

當您啟動電腦時,找到用於選擇啟動設備的 F 鍵(我見過F10F12,可能是另一個),您應該看到 USB 的兩個條目(如果電腦上啟用了傳統啟動),選擇您的 US 驅動器並且,如果有兩個,您可能會選擇錯誤的一個(傳統引導),因此請重複另一個,系統“應該”引導。

引用自:https://unix.stackexchange.com/questions/519649