BootISO:從ISO文件中創(chuàng)建一個(gè)可啟動(dòng)的USB設(shè)備
為了安裝操作系統(tǒng),我們中的大多數(shù)人(包括我)經(jīng)常從 ISO 文件中創(chuàng)建一個(gè)可啟動(dòng)的 USB 設(shè)備。為達(dá)到這個(gè)目的,在 Linux 中有很多自由可用的應(yīng)用程序。甚至在過(guò)去我們寫(xiě)了幾篇介紹這種實(shí)用程序的文章。
每個(gè)人使用不同的應(yīng)用程序,每個(gè)應(yīng)用程序有它們自己的特色和功能。在這些應(yīng)用程序中,一些應(yīng)用程序?qū)儆?CLI 程序,一些應(yīng)用程序則是 GUI 的。
今天,我們將討論名為 BootISO 的實(shí)用程序類(lèi)似工具。它是一個(gè)簡(jiǎn)單的 bash 腳本,允許用戶(hù)來(lái)從 ISO 文件中創(chuàng)建一個(gè)可啟動(dòng)的 USB 設(shè)備。
很多 Linux 管理員使用 dd
命令開(kāi)創(chuàng)建可啟動(dòng)的 ISO ,它是一個(gè)著名的原生方法,但是與此同時(shí),它也是一個(gè)非常危險(xiǎn)的命令。因此,小心,當(dāng)你用 dd
命令執(zhí)行一些動(dòng)作時(shí)。
BootISO 是什么
BootISO 是一個(gè)簡(jiǎn)單的 bash 腳本,允許用戶(hù)來(lái)安全的從一個(gè) ISO 文件中創(chuàng)建一個(gè)可啟動(dòng)的 USB 設(shè)備,它是用 bash 編寫(xiě)的。
它不提供任何圖形用戶(hù)界面而是提供了大量的選項(xiàng),可以讓初學(xué)者順利地在 Linux 上來(lái)創(chuàng)建一個(gè)可啟動(dòng)的 USB 設(shè)備。因?yàn)樗且粋€(gè)智能工具,能自動(dòng)地選擇連接到系統(tǒng)上的 USB 設(shè)備。
當(dāng)系統(tǒng)有多個(gè) USB 設(shè)備連接,它將打印出列表。當(dāng)你手動(dòng)選擇了另一個(gè)硬盤(pán)而不是 USB 時(shí),在這種情況下,它將安全地退出,而不會(huì)在硬盤(pán)上寫(xiě)入任何東西。
這個(gè)腳本也將檢查依賴(lài)關(guān)系,并提示用戶(hù)安裝,它可以與所有的軟件包管理器一起工作,例如 apt-get、yum、dnf、pacman 和 zypper。
BootISO 的功能
- 它檢查選擇的 ISO 是否是正確的 mime 類(lèi)型。如果不是,那么退出。
- 如果你選擇除 USB 設(shè)備以外的任何其它的磁盤(pán)(本地硬盤(pán)),BootISO 將自動(dòng)地退出。
- 當(dāng)你有多個(gè)驅(qū)動(dòng)器時(shí),BootISO 允許用戶(hù)選擇想要使用的 USB 驅(qū)動(dòng)器。
- 在擦除和分區(qū) USB 設(shè)備前,BootISO 會(huì)提示用戶(hù)確認(rèn)。
- BootISO 將正確地處理來(lái)自一個(gè)命令的任何錯(cuò)誤,并退出。
- BootISO 在遇到問(wèn)題退出時(shí)將調(diào)用一個(gè)清理例行程序。
如何在 Linux 中安裝 BootISO
在 Linux 中安裝 BootISO 有幾個(gè)可用的方法,但是,我建議用戶(hù)使用下面的方法安裝。
$ curl -L https://git.io/bootiso -O
$ chmod +x bootiso
$ sudo mv bootiso /usr/local/bin/
一旦 BootISO 已經(jīng)安裝,運(yùn)行下面的命令來(lái)列出可用的 USB 設(shè)備。
$ bootiso -l
Listing USB drives available in your system:
NAME HOTPLUG SIZE STATE TYPE
sdd 1 32G running disk
如果你僅有一個(gè) USB 設(shè)備,那么簡(jiǎn)單地運(yùn)行下面的命令來(lái)從一個(gè) ISO 文件中創(chuàng)建一個(gè)可啟動(dòng)的 USB 設(shè)備。
$ bootiso /path/to/iso file
$ bootiso /opt/iso_images/archlinux-2018.05.01-x86_64.iso
Granting root privileges for bootiso.
Listing USB drives available in your system:
NAME HOTPLUG SIZE STATE TYPE
sdd 1 32G running disk
Autoselecting `sdd' (only USB device candidate)
The selected device `/dev/sdd' is connected through USB.
Created ISO mount point at `/tmp/iso.vXo'
`bootiso' is about to wipe out the content of device `/dev/sdd'.
Are you sure you want to proceed? (y/n)>y
Erasing contents of /dev/sdd...
Creating FAT32 partition on `/dev/sdd1'...
Created USB device mount point at `/tmp/usb.0j5'
Copying files from ISO to USB device with `rsync'
Synchronizing writes on device `/dev/sdd'
`bootiso' took 250 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 !
當(dāng)你有多個(gè) USB 設(shè)備時(shí),可以使用 --device
選項(xiàng)指明你的設(shè)備名稱(chēng)。
$ bootiso -d /dev/sde /opt/iso_images/archlinux-2018.05.01-x86_64.iso
默認(rèn)情況下,BootISO 使用 rsync
命令來(lái)執(zhí)行所有的動(dòng)作,如果你想使用 dd
命令代替它,使用下面的格式。
$ bootiso --dd -d /dev/sde /opt/iso_images/archlinux-2018.05.01-x86_64.iso
如果你想跳過(guò) mime 類(lèi)型檢查,BootISO 實(shí)用程序帶有下面的選項(xiàng)。
$ bootiso --no-mime-check -d /dev/sde /opt/iso_images/archlinux-2018.05.01-x86_64.iso
為 BootISO 添加下面的選項(xiàng)來(lái)跳過(guò)在擦除和分區(qū) USB 設(shè)備前的用戶(hù)確認(rèn)。
$ bootiso -y -d /dev/sde /opt/iso_images/archlinux-2018.05.01-x86_64.iso
連同 -y
選項(xiàng)一起,啟用自動(dòng)選擇 USB 設(shè)備。
$ bootiso -y -a /opt/iso_images/archlinux-2018.05.01-x86_64.iso
為知道更多的 BootISO 選項(xiàng),運(yùn)行下面的命令。
$ bootiso -h
Create a bootable USB from any ISO securely.
Usage: bootiso [...]
Options
-h, --help, help Display this help message and exit.
-v, --version Display version and exit.
-d, --device Select block file as USB device.
If is not connected through USB, `bootiso' will fail and exit.
Device block files are usually situated in /dev/sXX or /dev/hXX.
You will be prompted to select a device if you don't use this option.
-b, --bootloader Install a bootloader with syslinux (safe mode) for non-hybrid ISOs. Does not work with `--dd' option.
-y, --assume-yes `bootiso' won't prompt the user for confirmation before erasing and partitioning USB device.
Use at your own risks.
-a, --autoselect Enable autoselecting USB devices in conjunction with -y option.
Autoselect will automatically select a USB drive device if there is exactly one connected to the system.
Enabled by default when neither -d nor --no-usb-check options are given.
-J, --no-eject Do not eject device after unmounting.
-l, --list-usb-drives List available USB drives.
-M, --no-mime-check `bootiso' won't assert that selected ISO file has the right mime-type.
-s, --strict-mime-check Disallow loose application/octet-stream mime type in ISO file.
-- POSIX end of options.
--dd Use `dd' utility instead of mounting + `rsync'.
Does not allow bootloader installation with syslinux.
--no-usb-check `bootiso' won't assert that selected device is a USB (connected through USB bus).
Use at your own risks.
Readme
Bootiso v2.5.2.
Author: Jules Samuel Randolph
Bugs and new features: https://github.com/jsamr/bootiso/issues
If you like bootiso, please help the community by making it visible:
* star the project at https://github.com/jsamr/bootiso
* upvote those SE post: https://goo.gl/BNRmvm https://goo.gl/YDBvFe