AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[disk-image](unix)

Martin Hope
Murmi
Asked: 2024-02-29 02:15:36 +0800 CST

使用 msdos 分区表和 fat32 创建磁盘映像

  • 6

我想创建一个磁盘映像文件以包含在我的单元测试中。这个磁盘文件应该包含一些我想读取的文件。当我创建 SD 卡或 USB 记忆棒的副本时,dd磁盘映像非常大,即使压缩它,大小也太大。

所以我想创建一个新的磁盘映像并随后安装它。然后添加新数据并压缩磁盘映像以进行版本控制

我目前的步骤:

  1. 创建磁盘映像:dd if=/dev/zero of=DISK1.img bs=1M count=1200
  2. 打开分开:sudo parted DISK1.img
  3. 创建分区表(使用parted):mklabel msdos
  4. 创建分区(带parted):mkpart primary fat32 1MB 100%
  5. 打印:
    (parted) print                                                            
    Modell:  (file)
    Festplatte  <path>/DISK1.img:  1258MB
    Sektorgröße (logisch/physisch): 512B/512B
    Partitionstabelle: msdos
    Disk-Flags: 
    
    Nummer  Anfang  Ende    Größe   Typ      Dateisystem  Flags
     1      1049kB  1258MB  1257MB  primary  fat32        lba
    

现在,当我退出并重新打开parted时,文件系统不再被识别:

(parted) print                                                            
Modell:  (file)
Festplatte  <path>/DISK1.img:  1258MB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Typ      Dateisystem  Flags
 1      1049kB  1258MB  1257MB  primary               lba

如何从头开始创建图像?

编辑 2024-03-02

使用@Stephen Kitt 的评论,它起作用了:

  1. dd if=/dev/zero of=DISK1.img bs=1M count=1200
  2. parted DISK1.img
  3. 创建分区表(使用parted):mklabel msdos
  4. 创建分区(带parted):mkpart primary fat32 1MB 100%
  5. 退出分手
  6. mkfs.vfat -v --offset 2048 DISK1.img

挂载分区:

  1. 找到startsector:(fdisk -lu DISK1.img同上)
  2. 获取偏移量(以字节为单位):512bytes * 2048sectors = 1048576
  3. lopsetup分区:sudo losetup -o 1048576 /dev/loop0 DISK1.img
  4. 山:sudo mount /dev/loop0 DISK_MOUNT
  5. 将数据复制到已安装的分区(需要root)
  6. 卸载sudo umount /dev/loop0
  7. 分离lostup:sudo losetup -d /dev/loop0

现在新数据位于磁盘映像中

disk-image
  • 2 个回答
  • 42 Views
Martin Hope
gatorback
Asked: 2020-02-03 11:14:03 +0800 CST

可以对 SD 卡映像文件执行 zerofree 处理吗?

  • 1

在此处输入图像描述

Ubuntu 16.04:使用以下命令创建了 64GB SD 卡映像:

date; sudo sh -c 'pv /dev/mmcblk0 >rpi4_Ubuntu18.1_64GB.image'; date

rasbperry pi SD 卡配备 Ubuntu 18.1

Ubuntu 16.04 笔记本电脑可以:

  • 挂载 .image 文件?
  • 在 .image 文件的挂载点上运行 zerofree?
  • 卸载 .image 文件?

我知道可以将图像文件恢复到 SD 卡并使用zerofree处理卡并再次捕捉图像。如果能够在不将它们恢复到 SD 卡的情况下处理多个 .image 文件,那就太好了。

更新:测试结果

映像成功挂载到 /dev/loop9p2:

$ sudo losetup -P /dev/loop9 rpi4_Ubuntu18.1_64GB.image
$ ls -l /dev/loop9*
brw-rw---- 1 root disk   7, 9 Feb  2 19:12 /dev/loop9
brw-rw---- 1 root disk 259, 0 Feb  2 19:12 /dev/loop9p1
brw-rw---- 1 root disk 259, 1 Feb  2 19:12 /dev/loop9p2

零故障:

$ zerofree -v /dev/loop9p2
zerofree: failed to open filesystem /dev/loop9p2

需要零零sudo:

$ sudo zerofree -v /dev/loop9p2
14346339/14348998/15073019
  • 14346339 遇到的非零块数
  • 14348998 文件系统中的空闲块数
  • 15073019 文件系统内的总块数

奖励:使用脚本pishrink减小图像大小

sd-card disk-image
  • 1 个回答
  • 737 Views
Martin Hope
Vlastimil Burián
Asked: 2019-12-20 01:05:39 +0800 CST

如何通过网络将磁盘驱动器复制到另一台计算机(创建和使用此类磁盘映像)?

  • 2

我最初认为,我只是scp将我的笔记本电脑磁盘驱动器复制到服务器阵列上以进行备份。


not a regular file事实证明,这可能是不可能的(


如何将整个 NVMe 驱动器从笔记本电脑上的实时 Linux Mint 19 USB 记忆棒复制到运行 RAID-1 阵列的服务器上并将其保存到文件中?


本地来源:

/dev/nvme0n1

远程目的地192.168.0.1xx,端口59xxx:

/mnt/raid1_3tb/laptop-dell--ssd-nvme-toshiba--linux-mint-19--2019-dec-19.img
networking disk-image
  • 1 个回答
  • 211 Views
Martin Hope
potato
Asked: 2019-12-06 09:37:49 +0800 CST

Clonezilla 制作的图像比实际驱动器大小更小

  • 5

我刚买了一台配备 500GB SSD 的新笔记本电脑。我想做的第一件事是克隆硬盘,因为我想拥有整个系统的原始副本。

为了做到这一点,我用 Clonezilla 刷了一个 USB 随身碟,并尝试使用 device-image选项和beginner mode.

我希望有一个与源 SSD 大小相同的图像(类似于 .img.zp 文件),但是我最终得到了一个文件夹,里面有几个文件,只需要 14GB 的空间,而且只用了 10 分钟。整个过程。

这是正常的还是我一路上搞砸了什么?

linux disk-image
  • 1 个回答
  • 1064 Views
Martin Hope
Jan S
Asked: 2019-11-25 23:27:50 +0800 CST

如何捕获 2 个输出值并处理它们

  • 0

我正在尝试创建一个万无一失的解决方案,在 dd 的帮助下将图像写入存储卡。

想法:我想在系统上放置一个脚本,其他人可以在不了解编写图像的情况下执行该脚本。

图像的大小可能会发生变化,因此必须预先运行查询以确定大小。

isoinfo -d -i /media/usb/image.iso | grep -i -E 'block size|volume size' | sed 's/^.*is: \(.*\)/\1/'

获取块数和卷大小。现在我需要将这些值合并到以下代码中

dd if=/media/usb/image.iso of=/dev/sdc bs=2048 count=96053 status=progress

我试图通过自动填充 bs= 和 count= 来解决这个问题,但我无法弄清楚如何获取和处理第一段代码的输出。

我试过 xargs 但这对我没有多大帮助。我希望你能给我一些解决方案。

干杯一月

shell-script disk-image
  • 1 个回答
  • 17 Views
Martin Hope
Joe Herman
Asked: 2018-11-03 09:10:48 +0800 CST

在主动/被动系统之间共享 KVM 虚拟磁盘是否安全

  • 3

我有两个在 Linux 来宾操作系统下运行 DB2 数据库的 VM。一次只有一个数据库处于活动状态,但我希望两个虚拟机同时运行。

数据库将存储在由 SAN 支持的虚拟磁盘映像(考虑为 .img,但对其他格式开放)上,并且该磁盘映像将附加到两个 VM

如果虚拟磁盘仅由“活动”机器安装,那么在每个 VM 中配置虚拟磁盘文件是否安全?

kvm disk-image
  • 2 个回答
  • 564 Views
Martin Hope
Kristian
Asked: 2018-10-05 13:18:25 +0800 CST

获取 ddrescue 图像文件的内容

  • 1

我的硬盘有大约 400 GB 的数据,其中大约 50 GB 需要恢复。所有数据都位于特定目录(/​​Fotos2018/)中。

硬盘是WD My Passport Essential WDBAAA5000ABK (500 GB, USB 2.0)。它包含一个包含我的数据的 FAT32 分区,以及另一个包含一些 WD 软件的分区。

我尝试使用ddrescue --no-split -r3 /dev/sdb1 defekt_wd.iso defekt_wd.log. 它产生了大量错误(我没有输出),但最终得到了输出文件。如果有任何指示,则日志文件为 1.2 MB。在这个操作过程中,硬盘驱动器听起来越来越沙哑,并且变得相当热。

我找到了各种提取内容的方法,但没有一个成功。以下是我的尝试:

首先,传统挂载(但是,由于保修条款,我无法在当前机器上重新编译内核,但如果您认为这可以在不同的机器上工作,我可以复制映像文件)

# mount defekt_wd.img /tmp/defektdisk
mount: Could not find any loop device. Maybe this kernel does not know about the loop device? (If so, recompile or `modprobe loop'.)
# modprobe loop
FATAL: Module loop not found.

第二,使用xorriso。

# xorriso -indev defekt_wd.img -ls
xorriso 1.3.2 : RockRidge filesystem manipulator, libburnia project.
xorriso : NOTE : Loading ISO image tree from LBA 0
libisoburn: WARNING : No ISO 9660 image at LBA 0. Creating blank image.
Drive current: -indev 'defekt_wd.img'
Media current: stdio file, overwriteable
Media status : is written , is closed
Media summary: 1 session, 228724832 data blocks,  436g data,     0 free
Volume id    : 'ISOIMAGE'
Valid ISO nodes found: 0

我还尝试使用 7-zip 提取/列出/测试存档,例如:

# 7z l defekt_wd.img 
7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=C,Utf16=off,HugeFiles=on,2 CPUs)
Error: defekt_wd.img: Can not open file as archive
Errors: 1

这是输出file:

# file defekt_wd.img
defekt_wd.img: x86 boot sector, code offset 0x58, OEM-ID "BSD  4.4", sectors/cluster 64, Media descriptor 0xf8, heads 255, hidden sectors 2048, sectors 975394816 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 119038, reserved3 0x800000, serial number 0xac2710e2, label: "XYZ "

我目前的理论是图像文件包含两个分区,但我不知道如何提取其中一个的内容。你能就下一步做什么提供任何建议吗?

data-recovery disk-image
  • 3 个回答
  • 6933 Views
Martin Hope
tisaconundrum
Asked: 2018-09-14 13:24:20 +0800 CST

使用命令 pv 可以克隆驱动器,如何挂载它?[复制]

  • 6
这个问题在这里已经有了答案:
我可以从完整的驱动器映像挂载分区吗?[重复] (2个答案)
4年前关闭。

我能够使用以下命令备份驱动器。

pv -EE /dev/sda > disk-image.img

这一切都很好,但现在我无法看到文件,除非我使用这个命令

pv disk-image.img > /dev/sda

当然,这会将数据写回磁盘,这不是我想要做的。我的问题是我可以做些什么来挂载.img文件本身而不是仅仅写回磁盘?


我尝试使用循环安装,但似乎抱怨 NTFS 无效。

$ mount -o loop disk-image.img
mount: disk-image.img: can't find in /etc/fstab.
$ mount -o loop disk-image.img /mnt/disk-image/
NTFS signature is missing.
Failed to mount '/dev/loop32': Invalid argument
The device '/dev/loop32' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
mount disk-image
  • 3 个回答
  • 2518 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve