openSUSE:SUSE Studio Disc Image Howtos
如何在 Linux 中镜像 USB 闪存驱动器
- 要从您创建的设备制作可引导的 USB 存储器,请在构建选项卡中选择磁盘镜像类型,然后构建并下载 gzip 压缩的设备。 解压缩和解压设备。
图形界面方法
- 从 SUSE:SUSEStudio 仓库安装 imagewriter (http://download.opensuse.org/repositories/SUSE:/SUSEStudio/)。 然后您可以运行imagewriter以 root 身份运行,并将您选择的镜像写入您选择的 USB 设备。
dd 方法
- 为了将您的设备写入 USB 存储器,您需要找到要写入的设备。 插入 USB 存储器后,打开终端并键入
df
- 您将看到类似以下的输出
/dev/sda2 30969600 15533336 13863100 53% / udev 1997904 108 1997796 1% /dev /dev/sda5 92888248 85548000 2621560 98% /home /dev/sda6 23671572 935276 21533836 5% /var /dev/sdb1 7816228 1492 7814736 1% /media/disk
- 最后一个条目应该是您刚刚插入的 USB 存储器。 如果您有疑问,请尝试将其移除,运行df再次,看看该行是否消失。 在df的输出中,左列是分区,而数字之前的路径是设备路径。 在我们的示例中,“/dev/sdb1”是分区,“/dev/sdb”是设备路径。
- 重要提示:获得正确的设备路径非常重要 - 如果您不小心,可能会对您的系统造成无法弥补的损害。
- 找到设备路径后,您需要运行dd将您的设备写入 USB 存储器。dd需要两个参数:输入文件(您的设备)和输出文件(USB 设备的路径)。 在我们的示例中,输入文件名为“/home/suse/myappliance.raw”,设备路径为“/dev/sdb”,因此我们将从终端窗口运行此命令
sudo dd if=/home/suse/myappliance.raw of=/dev/sdb bs=4k conv=fdatasync
- 最后一个参数 (bs=4k) 是可选的,但添加它会使写入 USB 设备的速度更快。 conv=fdatasync 参数应确保在 dd 完成之前将设备完全写入 USB 设备。
- 请记住,这将 *完全覆盖 USB 设备,因此请确保先不要在上面保存任何重要数据!
- 写入 USB 存储器通常很慢,所以如果看起来需要很长时间,请不要惊慌。 当dd完成后,它会告诉您一些关于它已写入 USB 存储器的统计信息。 如果您的 USB 存储器上有一个指示数据正在写入时闪烁的光,请等待它停止闪烁后再将其移除。
- 注意:由于分块写入图像是一个关键过程,请比较原始图像和新创建设备的 md5sums
md5sum /home/suse/myappliance.raw
md5sum /dev/sdb
- 现在您已经准备好从 USB 存储器启动自定义软件设备!
要获得持久的实时混合 USB 存储器系统,您必须在存储器上创建第二个分区
fdisk /dev/sdb
The number of cylinders for this disk is set to 3935.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (661-3935, default 661):
Using default value 661
Last cylinder, +cylinders or +size{K,M,G} (661-3935, default 3935):
Using default value 3935
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
如何在 Windows 中镜像 USB 闪存驱动器
图形界面方法
- 在 Microsoft Windows 中,安装 SUSE Studio ImageWriter for Microsoft Windows。
困难的方法
- 危险! 此说明仅供专家使用!
如果您在此处犯错,可能会对您的系统造成无法弥补的损害。
- 要从您创建的设备制作可引导的 USB 存储器,请在构建选项卡中选择磁盘镜像类型,然后构建并下载 gzip 压缩的设备。 解压缩和解压设备。 也许您可以使用 7-zip,一个在 GNU LGPL 许可下的工具。
- 为了将您的设备写入 USB 存储器在 Windows 环境中,您需要 'dd for windows' 工具。
- 要找到要写入的设备,插入 USB 存储器后,打开命令提示符 (cmd) 并键入
dd --list
- 您将看到类似以下的输出
C:\temp>dd --list
rawwrite dd for windows version 0.5.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by the GPL. See copying.txt for details
Win32 Available Volume Information
\\.\Volume{ac56bf46-66cc-11dc-86f6-806d6172696f}\
link to \\?\Device\HarddiskVolume1
fixed media
Mounted on \\.\c:
\\.\Volume{ac56bf47-66cc-11dc-86f6-806d6172696f}\
link to \\?\Device\HarddiskVolume2
fixed media
Mounted on \\.\d:
\\.\Volume{d8bf0b41-66cd-11dc-a7a7-806d6172696f}\
link to \\?\Device\CdRom0
CD-ROM
Mounted on \\.\e:
\\.\Volume{65668b14-8a7b-11dd-ab31-545543445208}\
link to \\?\Device\Harddisk1\DP(1)0-0+8
removeable media
Mounted on \\.\f:
NT Block Device Objects
\\?\Device\CdRom0
Removable media other than floppy. Block size = 2048
size is 695670784 bytes
\\?\Device\Harddisk0\Partition0
link to \\?\Device\Harddisk0\DR0
Fixed hard disk media. Block size = 512
size is 120034123776 bytes
\\?\Device\Harddisk0\Partition1
link to \\?\Device\HarddiskVolume1
\\?\Device\Harddisk0\Partition2
link to \\?\Device\HarddiskVolume2
\\?\Device\Harddisk0\Partition3
link to \\?\Device\HarddiskVolume3
Fixed hard disk media. Block size = 512
size is 6366334464 bytes
\\?\Device\Harddisk0\Partition4
link to \\?\Device\HarddiskVolume4
Fixed hard disk media. Block size = 512
size is 468808704 bytes
\\?\Device\Harddisk1\Partition0
link to \\?\Device\Harddisk1\DR7
Removable media other than floppy. Block size = 512
size is 1014497280 bytes
\\?\Device\Harddisk1\Partition1
link to \\?\Device\Harddisk1\DP(1)0-0+8
Removable media other than floppy. Block size = 512
size is 1014480896 bytes
Virtual input devices
/dev/zero (null data)
/dev/random (pseudo-random data)
- (standard input)
Virtual output devices
- (standard output)
C:\temp>
- 我们要查找的条目是显示可移动媒体的条目,即您刚刚插入的 USB 存储器。 如果您有疑问,请尝试将其移除,运行dd --list再次,看看该行是否消失。 我们需要的信息是\\.\f:
\\.\Volume{65668b14-8a7b-11dd-ab31-545543445208}\
link to \\?\Device\Harddisk1\DP(1)0-0+8
removeable media
Mounted on \\.\f:
- 重要提示:获得正确的设备路径非常重要 - 如果您不小心,可能会对您的系统造成无法弥补的损害。
- 找到设备路径后,您需要运行dd将您的设备写入 USB 存储器。dd需要两个参数:输入文件(您的设备)和输出文件(USB 设备的路径)。 在我们的示例中,输入文件名为“c:\temp\myappliance.raw”,设备路径为“\\.\f:”,因此我们将从终端窗口运行此命令
dd if=c:\home\suse\myappliance.raw of=\\.\f: bs=4k
- 最后一个参数 (bs=4k) 是可选的,但添加它会使写入 USB 设备的速度更快。
- 请记住,这将 *完全覆盖 USB 设备,因此请确保先不要在上面保存任何重要数据!
- 写入 USB 存储器通常很慢,所以如果看起来需要很长时间,请不要惊慌。 当dd完成后,它会告诉您一些关于它已写入 USB 存储器的统计信息。 如果您的 USB 存储器上有一个指示数据正在写入时闪烁的光,请等待它停止闪烁后再将其移除。
- 现在您已经准备好从 USB 存储器启动自定义软件设备!
如何检查原始镜像和 USB 设备的 MD5SUM
- 我们收到一些反馈,有缺陷的 USB 存储器可能会显示整个系统出现问题,但单个文件不会出现问题。 如果您的 USB 存储器显示令人困惑的行为,请检查 MD5SUM 以确保您的 Linux 系统没有损坏。
- 注意:由于分块写入图像是一个关键过程,请比较原始图像和新创建设备的 md5sums
md5sum /home/suse/myappliance.raw
md5sum /dev/sdb
如何将镜像复制到硬盘
- 这与 如何在 Linux 中安装镜像到 USB 驱动器 相同,但不同之处在于您需要使用其他 USB 存储器或带有 dd 工具的 livecd 启动。
- 另一种方法是从另一台机器通过网络启动一些 live 介质并传输镜像。 为此,您需要一个包含 netcat 的 live 介质,并且必须在要写入镜像的机器上执行以下命令
netcat -l -p1234 | dd of=/dev/sda
确保 of 参数指向您要写入的磁盘。 此磁盘上的内容将被丢失。
然后在包含镜像的机器上执行此命令
dd if=/path/to/image.raw | netcat 1.2.3.4 1234
将 1.2.3.4 替换为您要写入的机器的 IP 地址。 1234 只是一个随机网络端口。 如有需要,请在此处使用不同的数字。
如何更改光盘镜像上的配置
- 您可以使用以下命令挂载光盘镜像
kpartx -av yourimage.raw <- this will tell you the mapper. i.e loop0p1 mount /dev/mapper/loop0p1 mnt/ <- substitute loop0p1 for the mapper you got in the previous command
- 然后更改您想要更改的内容并卸载。
如何在 qemu 上试用镜像
- 您可以在将它们复制到 USB 或光盘之前在 qemu 上试用这些镜像。 即使您可以使用 qemu 执行此操作,我建议使用 qemu-kvm,因为它具有更好的性能。 无论如何,光盘镜像没有可用空间,因为它会在 USB 或光盘上扩展,但在 qemu 上不会。 因此,在复制它之后,您可以添加一些可用空间,方法是
dd if=/dev/zero of=image.raw bs=1 count=1 conv=notrunc seek=3G
- 然后在 qemu 或 qemu-kvm 上试用镜像
qemu image.raw
- 或
qemu-kvm image.raw
- 或
qemu-kvm --snapshot -m 512 image.raw
如何使 USB 驱动器可启动
- 已知在某些情况下,USB 驱动器将无法启动。 即使有时它会启动一次,然后停止启动。 问题是主分区应标记为可引导的。 为了做到这一点,连接 usb 磁盘并从终端执行
(/dev/sdb 必须是您的 USB:请确保这一点!)
umount /dev/sdb1 (and any other partition you have mounted automatically. Check it with the mount command) fdisk /dev/sdb \tp «--- print partition table \ta «--- activate partition (bootable) \t1 «--- partition 1 is bootable \tw «--- write changes to partition table