Bootiso:讓你安全地創建 USB 啟動設備

編譯自: https://www.ostechnix.com/bootiso-lets-you-safely-create-bootable-usb-drive/

譯者: kennethXia

你好,新兵!你們有些人經常使用 dd 命令做各種各樣的事,比如創建 USB 啟動盤或者克隆硬盤分區。不過請牢記,dd 是一個危險且有毀滅性的命令。如果你是個 Linux 的新手,最好避免使用 dd 命令。如果你不知道你在做什麼,你可能會在幾分鐘裡把硬盤擦掉。從原理上說,dd 只是從 if 讀取然後寫到 of 上。它才不管往哪裡寫呢。它根本不關心那裡是否有分區表、引導區、家目錄或是其他重要的東西。你叫它做什麼它就做什麼。可以使用像 Etcher[1] 這樣的用戶友好的應用來代替它。這樣你就可以在創建 USB 引導設備之前知道你將要格式化的是哪塊盤。

今天,我發現了另一個可以安全創建 USB 引導設備的工具 Bootiso 。它實際上是一個 BASH 腳本,但真的很智能!它有很多額外的功能來幫我們安全創建 USB 引導盤。如果你想確保你的目標是 USB 設備(而不是內部驅動器),或者如果你想檢測 USB 設備,你可以使用 Bootiso。下面是使用此腳本的顯著優點:

如果只有一個 USB 驅動器,Bootiso 會自動選擇它。

如果有一個以上的 USB 驅動器存在,它可以讓你從列表中選擇其中一個。

萬一你錯誤地選擇一個內部硬盤驅動器,它將退出而不做任何事情。

它檢查選定的 ISO 是否具有正確的 MIME 類型。如果 MIME 類型不正確,它將退出。

它判定所選的項目不是分區,如果判定失敗則退出。

它將在擦除和對 USB 驅動器分區之前提示用戶確認。

列出可用的 USB 驅動器。

安裝 syslinux 引導系統 (可選)。

自由且開源。

使用 Bootiso 安全地創建 USB 驅動器

安裝 Bootiso 非常簡單。用這個命令下載最新版本:

$ curl -L https://rawgit.com/jsamr/bootiso/latest/bootiso -O

把下載的文件加到 $PATH 目錄中,比如 /usr/local/bin/。

$ sudo cp bootiso /usr/local/bin/

最後,添加運行權限:

$ sudo chmod +x /usr/local/bin/bootiso

搞定!現在就可以創建 USB 引導設備了。首先,讓我們用命令看看現在有哪些 USB 驅動器:

$ bootiso -l

輸出:

Listing USB drives available in your system:

NAME HOTPLUG SIZE STATE TYPE

sdb 1 7.5G running disk

如你所見,我只有一個 USB 驅動器。讓我們繼續通過命令用 ISO 文件創建 USB 啟動盤:

$ bootiso bionic-desktop-amd64.iso

這個命令會提示你輸入 sudo 密碼。輸入密碼並回車來安裝缺失的組件(如果有的話),然後創建 USB 啟動盤。

輸出:

[...]

Listing USB drives available in your system:

NAME HOTPLUG SIZE STATE TYPE

sdb 1 7.5G running disk

Autoselecting `sdb' (only USB device candidate)

The selected device `/dev/sdb' is connected through USB.

Created ISO mount point at `/tmp/iso.c5m'

`bootiso' is about to wipe out the content of device `/dev/sdb'.

Are you sure you want to proceed? (y/n)>y

Erasing contents of /dev/sdb...

Creating FAT32 partition on `/dev/sdb1'...

Created USB device mount point at `/tmp/usb.QgV'

Copying files from ISO to USB device with `rsync'

Synchronizing writes on device `/dev/sdb'

`bootiso' took 303 seconds to write ISO to USB device with `rsync' method.

ISO succesfully unmounted.

USB device succesfully unmounted.

USB device succesfully ejected.

You can safely remove it !

如果你的 ISO 文件 MIME 類型不對,你會得到下列錯誤信息:

Provided file `bionic-desktop-amd64.iso' doesn't seem to be an iso file (wrong mime type: `application/octet-stream').

Exiting bootiso...

當然,你也能像下面那樣使用 –no-mime-check 選項來跳過 MIME 類型檢查。

$ bootiso --no-mime-check bionic-desktop-amd64.iso

就像我前面提到的,如果系統裡只有 1 個 USB 設備 Bootiso 將自動選中它。所以我們不需要告訴它 USB 設備路徑。如果你連接了多個設備,你可以像下面這樣使用 -d 來指明 USB 設備。

$ bootiso -d /dev/sdb bionic-desktop-amd64.iso

用你自己的設備路徑來換掉 /dev/sdb。

在多個設備情況下,如果你沒有使用 -d 來指明要使用的設備,Bootiso 會提示你選擇可用的 USB 設備。

Bootiso 在擦除和改寫 USB 盤分區前會要求用戶確認。使用 -y 或 –assume-yes 選項可以跳過這一步。

$ bootiso -y bionic-desktop-amd64.iso

您也可以把自動選擇 USB 設備與 -y 選項連用,如下所示。

$ bootiso -y -a bionic-desktop-amd64.iso

或者,

$ bootiso?--assume-yes?--autoselect bionic-desktop-amd64.iso

請記住,當你只連接一個 USB 驅動器時,它才會起作用。

Bootiso 會默認創建一個 FAT 32 分區,掛載後用 rsync 程序把 ISO 的內容拷貝到 USB 盤裡。 如果你願意也可以使用 dd 代替 rsync 。

$ bootiso --dd -d /dev/sdb bionic-desktop-amd64.iso

如果你想增加 USB 引導的成功概率,請使用 -b 或 –bootloader 選項。

$ bootiso -b bionic-desktop-amd64.iso

上面這條命令會安裝 syslinux 引導程序(安全模式)。注意,此時 –dd 選項不可用。

在創建引導設備後,Bootiso 會自動彈出 USB 設備。如果不想自動彈出,請使用 -J 或 –no-eject 選項。

$ bootiso -J bionic-desktop-amd64.iso

現在,USB 設備依然連接中。你可以使用 umount 命令隨時卸載它。

需要完整幫助信息,請輸入:

$ bootiso -h

好,今天就到這裡。希望這個腳本對你有幫助。好貨不斷,不要走開哦!

via: https://www.ostechnix.com/bootiso-lets-you-safely-create-bootable-usb-drive/