Debian USB 固件加载器脚本
在本文中,我们将探讨一个高效的 bash 脚本 debian_firmware_setup.sh
,它简化了将非自由固件(例如 Wi-Fi 驱动程序)集成到 Debian 安装中的过程。该脚本通过格式化 USB 记忆棒、下载指定版本的 Debian 非自由固件并将其解压到 USB 记忆棒上来自动准备 USB 记忆棒。这样就形成了一个可以在 Debian 安装过程中部署的即用型 USB 设备,从而简化了非自由固件元素的设置,并减少了通常与手动固件集成相关的麻烦。
在本教程中您将学习:
USB 格式化:该脚本会自动执行擦除和格式化所选 USB 记忆棒的过程,为安装固件做好准备。
固件下载:下载用户指定的特定版本的非自由 Debian 固件。
固件安装:下载的固件会自动解压到新格式化的 U 盘上,即可使用。
协助 Debian 安装:在 Debian 安装过程中,生成的 U 盘可以作为一个方便的工具,帮助用户轻松集成非自由固件,例如 Wi-Fi 驱动程序。
Debian 固件 USB 创建者
在本指南中,我们将引导您完成使用 debian_firmware_setup.sh
脚本的过程。该脚本自动执行使用特定版本的非自由 Debian 固件准备 USB 记忆棒的过程。以下是使用该脚本的详细步骤:
获取脚本:您的系统上需要有
debian_firmware_setup.sh
脚本。它可以放置在您认为合适的任何目录中。这可以通过从提供的源中复制粘贴脚本来实现。这是脚本:#!/bin/bash # Check if root if [ "$EUID" -ne 0 ] then echo "Please run as root" exit fi # Check if correct number of arguments are provided if [ "$#" -ne 1 ]; then echo "Usage: $0 " exit 1 fi VERSION=$1 MOUNT_POINT="/mnt/usb" # Get a list of USB devices USB_DEVICES=$(lsblk -do NAME,MODEL,SIZE,TRAN | grep 'usb') # Check if any USB devices were found if [ -z "$USB_DEVICES" ]; then echo "No USB devices found. Please plug in a USB device and try again." exit 1 fi # Convert the devices into an array USB_DEVICES=($USB_DEVICES) # Print the USB devices and ask the user to choose one IFS=$'\n' for i in $(lsblk -do NAME,MODEL,SIZE,TRAN | grep 'usb'); do DEVICES+=("$i") done for i in "${!DEVICES[@]}"; do echo "$((i+1)). ${DEVICES[$i]}" done echo "Please enter the number of the device you want to format:" read NUMBER DEVICE="/dev/$(echo ${DEVICES[$((NUMBER-1))]} | awk '{print $1}')" # Unmount if mounted if mount | grep -q $DEVICE; then echo "Device $DEVICE is mounted. Unmounting..." umount $DEVICE* fi # Wipe old signatures wipefs --all --force $DEVICE # Create the partition echo -e "o\nn\np\n1\n\n\nt\nb\nw" | fdisk $DEVICE # Create the filesystem with a delay sleep 5 # Add delay to ensure /dev/sda1 will be available PARTITION=${DEVICE}1 mkfs.vfat $PARTITION # Create mount point if it doesn't exist mkdir -p $MOUNT_POINT # Mount the partition mount $PARTITION $MOUNT_POINT # Verify if the partition is mounted if ! mount | grep -q $PARTITION; then echo "Failed to mount $PARTITION. Cannot proceed with writing data." exit 1 fi # Download the firmware FIRMWARE_URL="http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/$VERSION/current/firmware.tar.gz" wget -P $MOUNT_POINT $FIRMWARE_URL # Extract the firmware tar -xvzf $MOUNT_POINT/firmware.tar.gz -C $MOUNT_POINT # Unmount the partition if it's mounted if mount | grep -q $PARTITION; then umount $PARTITION fi echo "The script has finished."
使脚本可执行:系统上安装了脚本后,使用终端导航到它所在的目录,并使用以下命令使其可执行:
$ chmod +x debian_firmware_setup.sh
运行脚本:脚本需要以root用户身份运行。此外,您还必须提供要下载的非免费固件的 Debian 版本。使用以下命令运行脚本:
$ sudo ./debian_firmware_setup.sh <Debian version> eg. bookworm
将
替换为您要下载的 Debian 固件版本。选择 USB 记忆棒:该脚本将列出所有已连接的 USB 设备及其名称和大小,并提示您选择一个。键入与要格式化的 USB 设备相对应的编号,然后按 Enter。在此步骤中请小心,因为所选 USB 记忆棒将被格式化,并且其上的所有数据都将被删除。
等待该过程完成:然后脚本将卸载所选设备(如果已安装)、擦除它、创建新分区、格式化它、安装它、下载指定版本的 Debian 固件,将固件解压到新创建的分区上,最后卸载该分区。
请注意,脚本下载 Debian 固件需要互联网连接。确保在 Debian 安装过程中使用此 USB 记忆棒来无缝集成非免费固件。
请记住,请务必谨慎使用此脚本,因为它会格式化所选 USB 设备,从而导致设备上的所有数据丢失。
结论
总之,
debian_firmware_setup.sh
脚本是一个强大的工具,它简化了使用特定的非自由 Debian 固件准备 USB 记忆棒的过程。其自动化消除了通常与手动 USB 格式化、固件下载和提取过程相关的复杂性。通过提示用户从连接的 USB 设备中进行选择、确保成功安装和卸载以及处理与固件设置相关的所有操作,该脚本简化了 Debian 安装过程,特别是在集成非自由固件(如 Wi-Fi)时网络驱动程序。但是,使用此类脚本时请务必小心,因为它们涉及格式化操作,这会导致所选 USB 记忆棒上的所有现有数据丢失。有了这个实用程序,使用特定的非自由固件设置 Debian 就变得轻而易举。