可引导安装媒体创建程序
bdc的Python项目详细描述
可引导磁盘创建程序
该项目由多线程gui和cli组成,用于在linux中自动创建可引导的安装介质。
安装
PIP
使用pip
安装bdc
包非常简单。
sudo pip3 install bdc
吉特
要直接从存储库安装此软件包:
git clone https://github.com/adamjenkins1/BootableDiskCreator.git
cd BootableDiskCreator
sudo make install
make test
安装包后,请确保/usr/local/bin/
位于PATH
中,因为pip
在这里安装必要的可执行文件。
用法
此项目需要根权限(无法格式化或装载任何其他内容),因此请确保使用sudo
或以根用户身份执行脚本。这就是使用cli的方式:
usage: bdc [-h] [--image-mount IMAGE_MOUNT] [--device-mount DEVICE_MOUNT] [--silent] image device
script to automate process of creating bootable install media
positional arguments:
image path to ISO image
device partition on device to be written
optional arguments:
-h, --help show this help message and exit
--image-mount IMAGE_MOUNT
mount point for ISO image
--device-mount DEVICE_MOUNT
mount point for block device
--silent suppress log output
例如,调用:
bdc </path/to/image.iso> </dev/partition1>
gui不接受任何命令行参数,因此您可以像这样运行:
bdc-gui
依赖关系
- python>;=3.5
- Pyqt5==5.11.3
- awk
- mkfs.fat
- lsblk
- 安装
工作原理
很多Python。当python不是正确的工具时,这个项目使用python来完成所有繁重的工作。bash命令使用subprocess.Popen()
从python执行。此项目将执行以下操作来创建可引导驱动器:
- 获取可用分区的列表
- 将提供的映像作为循环设备安装
- 将提供的分区格式化为fat32
- 安装分区
- 将所有数据复制到该分区(不包括符号链接)。不受fat32支持)
然后卸下驱动器,剩下的就是自己的可引导驱动器。不过,有一个陷阱。此项目将不安装引导加载程序或设置任何标志以支持旧引导。创建的驱动器只能由UEFI引导。这可能会发生更改,因此如果您的计算机不支持uefi或映像尚未安装引导加载程序,请不要抱有希望。很多映像都安装了引导加载程序,因此如果您不确定映像是否有引导加载程序,则可能有(除非是DBAN)。如果你想确定的话,你可以随时挂载图像并亲自查看。
为什么要建这个?
我在为DEF CON 26准备垃圾桶的时候想到了这个主意,我在创建可引导媒体来安装linux时遇到了麻烦。当时我使用的是MacBook(不是我自己选择的——如果我有办法的话,我们都会使用Linux),而且在Mac上创建可引导安装媒体的工具也不是很好,而且在多个Linux发行版中没有任何可靠的东西。使这个项目不同于其他工具的是,这个项目不使用dd
将图像写入驱动器。这将保留驱动器上的文件系统,并允许从其他操作系统读取该文件系统。很多工具都会使用dd
来手动写入字节,因为它既快捷又简单。问题是它使你的驱动器看起来像一个iso文件系统,其他操作系统无法读取。基本上,使用这种方法,可以创建一个可引导的驱动器,但这就是您所能做的一切,这在我看来并不理想。
错误报告
如果您发现了一个bug或者想要建议一个增强,请确保在Github上打开一个带有适当标记的问题。
贡献
如果你有兴趣贡献,太好了!最好的方法是提交拉取请求。如果你有一个新功能的想法,你想实现,我宁愿你运行它之前,我写任何代码,以便我们可以确保它在项目的范围内。