Linux-Kernel

如何在 SD 卡上安裝 live ISO 以便它可以在任何地方啟動?

  • December 12, 2018

如何將 xNIX live-iso安裝(不是 live-persistence)到 SD 卡上?我希望它能夠在大多數機器上啟動。


深入:我用 parrotsec 4.4 64 位燒錄了一個 pendrive,將 parrot 安裝到我擁有的 64GB SD 卡上,同時拔下我的系統驅動器(為了不將 EPS 快閃記憶體到現有的恢復分區上)。即使在嘗試了不同的刷機工具——Parrot、YUMI、Rufus 和 UNetbootin 推薦的 Etcher——在工具提供的不同模式(自動、DD、ISO)下,同時還每次使用不同的分區設置(RAW、或預格式化的 FAT32/EXT4) 並在每個設置中混合 MBR/GPT 表。

好吧,幾乎每次都無法啟動 sd 卡,結果不同:回退到 grub shell、UEFI shell 或只是游標閃爍。我認為這在某種程度上是 ESP/GRUB 的錯,因為我猜它無法找到相關的*.efi 並且我真的不知道如何將它指向它需要的位置(sdx/EFI/boot/* .efi?)

介紹

  • **複製可以很好地創建實時 Parrot Security 4.4 64 位驅動器。我認為從外部驅動器(USB pendrive、SD 卡…)實時執行 Parrot 或持久實時執行是個好主意。**驅動器必須足夠大(至少 4 GB)。
  • 將 Parrot 安裝到 SD 卡(至少 16 GB)中很困難,但可以。
  • 如問題中所述,可通過實時系統獲得的圖形安裝程序對我來說也失敗了。
  • 事情會更乾淨,更容易,如果你

$$ can $$斷開您的內部驅動器,並僅使用此任務中涉及的驅動器。

如何安裝到外部驅動器(在本例中為 SD 卡)

  • 啟動到現場鸚鵡驅動器
  • 在 BIOS 模式下,您會看到一個 syslinux 菜單。選擇菜單頂部的“實時”以獲得圖形桌面環境
  • 插入 SD 卡(我是通過 USB 適配器完成的)。
  • 打開終端視窗並執行一些命令來準備 SD 卡。
sudo lsblk -fm
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=1
sudo -H gparted /dev/sdX
  • lsblk命令將幫助您辨識目標驅動器,即 SD 卡

  • dd命令將擦除第一個 mibibyte,這使安裝程序更願意安裝 grub。寫入 SD 卡非常重要,這意味著您必須為 SD 卡選擇正確的驅動器號(例如a替換bX。否則,您可能會破壞其他驅動器中的重要數據。如果您已斷開所有其他驅動器(實時驅動器和 SD 卡除外),事情會更安全。

  • gparted您可以“看到”驅動器資訊。應該沒有分區,甚至沒有分區表。

    • 創建一個新的 MSDOS 分區表(通過“設備”)
  • 關閉

  • 取出 SD 卡


  • 再次從 Parrot 實時驅動器啟動
  • 在 BIOS 模式下,您會看到一個 syslinux 菜單。選擇菜單底部附近的“安裝”。它將帶您進入文本模式安裝程序,即舊的“debian 安裝程序”。
  • 插入 SD 卡(我是通過 USB 適配器完成的)。
  • 在下一個小菜單中選擇“標準安裝程序”。
  • 選擇語言…(我不會在這裡描述所有步驟)。
  • 選擇“引導 - 使用整個磁碟”
  • 選擇指向 SD 卡的設備…
  • 安裝 GRUB 引導載入程序,回答“是”
  • 選擇指向 SD 卡的設備
  • 完成安裝
  • 移除 Parrot 實時驅動器
  • 讓電腦重啟

從 SD 卡執行已安裝的 Parrot

  • 重新啟動,您應該能夠啟動到已安裝的 Parrot :-)

修復以提高便攜性

讓我們假設電腦在重新啟動時很好地啟動,連接的驅動器與您在 SD 卡中創建 Parrot 系統時連接的驅動器相同(例如沒有連接內部驅動器)。

  • 當您更改連接的驅動器時(例如連接內部驅動器),可能仍然存在問題。當您將 SD 卡連接到另一台連接了一個或多個內部驅動器的電腦時,可能會出現同樣的問題。
  • 這些問題可以通過更改linux文件中 Parrot 的菜單條目中的行來解決grub.cfg,即使用。

從另一個驅動器啟動,例如實時驅動器。

sudo lsblk -f             # identify the drive and check the UUID
sudo mount /dev/sdX /mnt  # mount the drive that contains grub.cfg
sudo nano /mnt/boot/grub/grub.cfg  # edit grub.cfg

查找menuentryParrot 的段落以及以 開頭的每一行linux。用設備規格替換root=/dev/sda1或類似內容以

root=UUID=042cf088-b051-4961-b206-2c223a31dee2

其中字元串042cf088-b051-4961-b206-2c223a31dee2應替換為實際的 UUID 字元串(可能存在於menuentry, 並由lsblk命令行標識。

我在我的東芝筆記型電腦上編輯了這個,SD 卡通過 USB 適配器連接,/dev/sda並且沒有連接內部驅動器。我在具有內部驅動器的同一個東芝和連接了其他兩個驅動器的英特爾 NUC 中對其進行了測試。以下螢幕截圖來自英特爾 NUC,顯示 SD 卡通過內置插槽連接,/dev/mmcblk0並且連接了另外兩個驅動器。請root=UUID=...注意grub.cfg

在此處輸入圖像描述

評論

  • 在大多數電腦中,您可以通過 USB 啟動到 SD 卡。一些 USB 適配器可以與某些電腦配合使用,但不能保證,在啟動過程中,多台電腦和適配器不配合。
  • 在某些電腦中,您可以通過 PCI 啟動到 SD 卡(通常用於筆記型電腦的內置 SD 插槽)。這不是很常見,所以你不應該期望它對你有用。
  • 請注意,已安裝系統的 SD 卡的使用壽命可能會因磨損而縮短,因為多次寫入相同的儲存單元。複製的實時驅動器是只讀的,根本不受影響。持久的實時驅動器壽命更長,因為寫入操作更少。

一些命令

我安裝的 Parrot 測試系統的終端視窗中的一些命令,

┌─[tester@parrot]─[~]
└──╼ $lsb_release -a
No LSB modules are available.
Distributor ID: Parrot
Description:    Parrot 4.4
Release:    4.4
Codename:   stable
┌─[tester@parrot]─[~]
└──╼ $sudo lsblk -fm

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

   #1) Respect the privacy of others.
   #2) Think before you type.
   #3) With great power comes great responsibility.

[sudo] password for tester: 
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT  SIZE OWNER GROUP MODE
sda                                                                 29.7G root  disk  brw-rw----
├─sda1 btrfs        79ad87de-08a8-4623-9afc-7c8b25daa228 /          25.9G root  disk  brw-rw----
├─sda2                                                                 1K root  disk  brw-rw----
└─sda5 swap         dcf02e42-29de-4baa-adc9-febf55e611f8 [SWAP]      3.9G root  disk  brw-rw----
sr0                                                                 1024M root  cdrom brw-rw----
┌─[tester@parrot]─[~]
└──╼ $df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           384M  6.1M  378M   2% /run
/dev/sda1        26G   12G   14G  47% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs           384M   24K  384M   1% /run/user/1000
┌─[tester@parrot]─[~]
└──╼ $free -m
             total        used        free      shared  buff/cache   available
Mem:           3831         502        2611          56         718        3048
Swap:          3977           0        3977
┌─[tester@parrot]─[~]
└──╼ $uname -a
Linux parrot 4.18.0-parrot10-amd64 #1 SMP Debian 4.18.10-2parrot10 (2018-11-17) x86_64 GNU/Linux
┌─[tester@parrot]─[~]
└──╼ $

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