可引导安装媒体创建程序

bdc的Python项目详细描述


可引导磁盘创建程序Build StatuscodecovPyPI versionpyversions

该项目由多线程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执行。此项目将执行以下操作来创建可引导驱动器:

  1. 获取可用分区的列表
  2. 将提供的映像作为循环设备安装
  3. 将提供的分区格式化为fat32
  4. 安装分区
  5. 将所有数据复制到该分区(不包括符号链接)。不受fat32支持)

然后卸下驱动器,剩下的就是自己的可引导驱动器。不过,有一个陷阱。此项目将安装引导加载程序或设置任何标志以支持旧引导。创建的驱动器只能由UEFI引导。这可能会发生更改,因此如果您的计算机不支持uefi或映像尚未安装引导加载程序,请不要抱有希望。很多映像都安装了引导加载程序,因此如果您不确定映像是否有引导加载程序,则可能有(除非是DBAN)。如果你想确定的话,你可以随时挂载图像并亲自查看。

为什么要建这个?

我在为DEF CON 26准备垃圾桶的时候想到了这个主意,我在创建可引导媒体来安装linux时遇到了麻烦。当时我使用的是MacBook(不是我自己选择的——如果我有办法的话,我们都会使用Linux),而且在Mac上创建可引导安装媒体的工具也不是很好,而且在多个Linux发行版中没有任何可靠的东西。使这个项目不同于其他工具的是,这个项目不使用dd将图像写入驱动器。这将保留驱动器上的文件系统,并允许从其他操作系统读取该文件系统。很多工具都会使用dd来手动写入字节,因为它既快捷又简单。问题是它使你的驱动器看起来像一个iso文件系统,其他操作系统无法读取。基本上,使用这种方法,可以创建一个可引导的驱动器,但这就是您所能做的一切,这在我看来并不理想。

错误报告

如果您发现了一个bug或者想要建议一个增强,请确保在Github上打开一个带有适当标记的问题。

贡献

如果你有兴趣贡献,太好了!最好的方法是提交拉取请求。如果你有一个新功能的想法,你想实现,我宁愿你运行它之前,我写任何代码,以便我们可以确保它在项目的范围内。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带有接口参数的java反射和构造函数   java Spring Thymeleaf如何通过Thymeleaf表单编辑(更新)用户选择的实体(对象)?   Java Tapestry中不同类之间的静态、非静态和调用   java如何使用dojo 1.9显示地理地图   安卓如何在java中简化这个代码片段?   尝试将java spring应用程序部署到Oracle weblogic群集java时出错。lang.ArrayIndexOutofBounds异常:52304   java如何在标头中包含SOAP身份验证详细信息?   java使用流删除一个列表中的元素(如果存在于另一个列表中)   java如何将包含UTC时间的字符串(如“193526”(19:35:26)转换为本地时区?   java部署Grailsgenerated WAR文件的最简单方法是什么?   java使用两种类型向通用列表添加对象   java如何在安卓应用程序中保存应用程序数据?   java有人能帮我弄清楚如何从“:”(不包括)读取我的文件直到行尾吗?   java在org上找不到javadoc。日食团队svn anywhere