Bootiso :讓你安全地創建 USB 啟動設備
來自專欄 Linux
你好,新兵!你們有些人經常使用 dd
命令做各種各樣的事,比如創建 USB 啟動盤或者克隆硬碟分區。不過請牢記,dd
是一個危險且有毀滅性的命令。如果你是個 Linux 的新手,最好避免使用 dd
命令。如果你不知道你在做什麼,你可能會在幾分鐘里把硬碟擦掉。從原理上說,dd
只是從 if
讀取然後寫到 of
上。它才不管往哪裡寫呢。它根本不關心那裡是否有分區表、引導區、家目錄或是其他重要的東西。你叫它做什麼它就做什麼。可以使用像 Etcher 這樣的用戶友好的應用來代替它。這樣你就可以在創建 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 TYPEsdb 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 TYPEsdb 1 7.5G running diskAutoselecting `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)>yErasing contents of /dev/sdb...Creating FAT32 partition on `/dev/sdb1...Created USB device mount point at `/tmp/usb.QgVCopying files from ISO to USB device with `rsyncSynchronizing 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 doesnt 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/
作者:SK 選題:lujun9972 譯者:kennethXia 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
推薦閱讀:
※USB hub 為什麼都是 4 口的?
※當USB無法正確刪除時你是怎麼做的?或者有什麼好辦法可以解決嗎?
※為什麼有的USB Hub不能單獨彈出某個埠的移動硬碟?
※USB PD 3.0 是怎樣一統快充天下的?
※Apple 兼容舊式 USB Type-A 介面的雙向可插線纜是怎麼實現的?