标签: partition-table

无法挂载循环设备上创建的分区(指向文件)

目标

\n\n

我正在尝试使用文件从头开始制作硬盘映像。这包括 MBR、分区表、分区数量等。但我一生都无法让 Linux 挂载我创建的分区。

\n\n

编辑:请参阅问题末尾的更新 - 似乎与 vboxsf 有关

\n\n

程序

\n\n

到目前为止,我已经尝试了许多不同的方法,但那些最有效的方法最终都到达了同一个地方。我在下面制作了一个简化版本,应该足以解释我的问题

\n\n

使用 dd 生成空文件(或截断速度)

\n\n
dd if=/dev/zero of=test.img bs=1M count=150\n
Run Code Online (Sandbox Code Playgroud)\n\n

制作分区表

\n\n
parted -s test.img mklabel gpt\nWarning: The resulting partition is not properly aligned for best performance.\n
Run Code Online (Sandbox Code Playgroud)\n\n

制作分区

\n\n
parted -s test.img -- mkpart logical 0 5M\nparted -s test.img set 1 bios_grub on\nparted -s test.img -- mkpart logical 5M 50M\netc.\n
Run Code Online (Sandbox Code Playgroud)\n\n

安装为循环设备(加载 max_part=31 的循环模块)

\n\n
losetup /dev/loop0 test.img\n
Run Code Online (Sandbox Code Playgroud)\n\n

lsblk 来检查

\n\n …

filesystems partition loop-device disk-image partition-table

5
推荐指数
1
解决办法
2748
查看次数

如何更新/刷新 lsblk 报告的已更改的部分标签?

在 Linux 上,该命令lsblk -o partlabel将显示partlabel块设备。

我曾经gdisk改变过一个partlabel.

更改后,lsblk仍报告 的旧值partlabel

(旁白:路径/dev/disk/by-partlabel/*也仍在使用旧partlabel值。)

有没有办法刷新缓存以便lsblk报告 的新值partlabel

我不确定缓存到底在哪里。它可能是 udev、sysfs 或其他地方。

相比之下,blkid正确报告新的partlabel. 但是,我希望我可以避免切换到blkid(出于各种原因)。

(旁白:重新启动可能会更新这些partlabel值。但如果可能的话,我宁愿避免重新启动。)

linux udev sysfs partition-table lsblk

5
推荐指数
1
解决办法
7131
查看次数

fdisk:分区包含 ntfs 签名。去掉它?

我正在 ThinkPad X220 上安装 NixOs。虽然我对 shell 非常熟悉,但这是我第一次设置自己的系统,并且在尝试使用fdisk.

笔记本电脑目前安装了 Windows,我打算用 NixOS 完全替换它。我跑去fdisk查看当前的分区并用新的分区方案替换它们。

删除原始分区后,我创建了一个小的(500MB)启动分区,并fdisk报告:

Partition #1 contains a ntfs signature.
Do you want to remove the signature? [Y]es/[N]o:
Run Code Online (Sandbox Code Playgroud)

我不确定这是什么意思,谷歌搜索“ntfs 签名”没有发现任何有启发性的东西,所以我中止了整个事情(现在)。

任何人都可以解释该警告的重要性吗?删除 ntfs 签名会在未来产生不利影响吗?

我也想知道我是否应该尝试将驱动器从 MBR 转换为 GPT,部分原因是很多人似乎建议使用它gdisk来管理分区。我不确定这个硬件是否支持 GPT,以及它是否通过 BIOS 或 UEFI 启动。

作为参考,我的fdisk会话的更完整日志:

[root@nixos:~]# fdisk /dev/sda

Welcome to fdisk ...

Command (m for help): p
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes …
Run Code Online (Sandbox Code Playgroud)

partition fdisk system-installation mbr partition-table

4
推荐指数
1
解决办法
2万
查看次数

分区错误(Fdisk/Parted)

我正在使用parted命令创建一个分区,并使用mkpart选项创建一个新的主分区。但是在执行此操作时我收到了一条不寻常的错误消息。这是我的输出:

(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 729GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start   End     Size    Type      File system  Flags
 1      1049kB  300GB   300GB   primary   ext4         boot

(parted) mkpart
Partition type? primary/extended? primary
File system type? ext4
Start? 1050
End? 30000
Warning: You requested a partition from 1050MB to 30.0GB (sector 2050781..58593750). The closest location we can manage is 300GB to 300GB (sector 585936896..585936896).
Is this still …
Run Code Online (Sandbox Code Playgroud)

partition parted partition-table

4
推荐指数
1
解决办法
666
查看次数

如何扩展文件系统以填充分区?

如下图所示,我在两个 32GB 设备上创建了分区:一个 SD 卡和一个闪存 U 盘。

我打算在每种情况下使用整个分区创建文件系统,但不知何故我失败了:

sdb 上/dev/sdb129.8GB,而文件系统只有1023MB
SD 卡mmcblk0p230GB,但 /dev/mmcblk0p2 仅为1.9GB

我该如何纠正?

在此处输入图片说明

linux filesystems parted partition-table

3
推荐指数
1
解决办法
2万
查看次数

如何在整个磁盘上使用 zerofree?

我的 VirtualBox 文件系统如下所示:

# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       29799396 5467616  22795012  20% /
devtmpfs         1929980       0   1929980   0% /dev
tmpfs            1940308      12   1940296   1% /dev/shm
tmpfs            1940308    8712   1931596   1% /run
tmpfs            1940308       0   1940308   0% /sys/fs/cgroup
/dev/sdb        31441920 1124928  30316992   4% /srv/node/d1
/dev/sdc        31441920   49612  31392308   1% /srv/node/d2
/dev/sdd        31441920   34252  31407668   1% /srv/node/d3
/dev/sda1         999320  253564    676944  28% /boot
tmpfs             388064       0    388064   0% /run/user/0
Run Code Online (Sandbox Code Playgroud)

磁盘/dev/sdb/dev/sdc/dev/sdd是VDI数据磁盘。我从它们中删除了一些数据(不是全部),然后想用它zerofree …

partition ext4 mount disk partition-table

3
推荐指数
1
解决办法
5628
查看次数

是否可以卸载分区表?

是否可以卸载分区表,以便我在 /dev 中只看到 sda 而不是 sda1 和 sda2?

背景:

我知道没有安装分区表。但我没有找到更好的名字。

我经常使用dd来覆盖硬盘或 USB 笔。但他们经常有一些分区。覆盖后,我仍然可以使用lsblk看到旧的(不再存在的)分区表。

我知道可以使用partprobe重新读取分区表。

但是我想知道是否可以覆盖usb pen之前卸载分区表。因为我不希望程序在用dd覆盖时访问损坏的分区。

partition partition-table

3
推荐指数
1
解决办法
231
查看次数

GPT 分区表中是否有扩展分区?

在 MBR 模型下,我们可以创建四个主分区,其中一个可以是进一步细分为逻辑分区的扩展分区。

考虑一下来自维基百科的 GPT 示意图:

GPT

分区条目范围从 LBA 1 到 LBA 34,大概我们用完了那个空间,我知道这是相当数量的分区,如果磁盘使用 GPT 分区,是否可以创建扩展分区?如果可能,我们可以为每个 GPT 分区表创建多少个扩展分区?

我不确定这是否是在 LBA 1 到 LBA 34 范围内拥有分区条目的标准,也许我们可以扩展分区条目?

实际上这是相当数量的分区,我无意这样做。

partition gpt mbr partition-table

2
推荐指数
1
解决办法
5196
查看次数

克隆到较小的驱动器后修复 gpt

我有一个 gpt 分区的驱动器,最后有未分区的空间,我使用 dd 将它克隆到另一个较小的驱动器。不幸的是,Linux 不会看到克隆驱动器上的分区。

我的理解是 GPT 有两个分区表副本,在 MBR 表之后开始的主副本和末尾的辅助副本。因此应该可以修复克隆驱动器上的分区,如果可以使用任何工具来执行此操作?

dd cloning gpt partition-table

2
推荐指数
1
解决办法
1204
查看次数

KDE 上奇怪的分区混乱。只读文件系统

我正在尝试将 USB 记忆棒分区到 NTFS。

之前,我错误地使用 dd 刷新了 windows iso

dd if=./AME_2004_\(2020-09-16\).iso of=/dev/sdc status=progress
Run Code Online (Sandbox Code Playgroud)

从那以后我一直在格式化驱动器时遇到问题。

尝试将驱动器分区为 NTFS 时,Kde 分区管理器、cfdisk 和 fdisk 都会产生相同的结果

/dev/sdc read only file system
Run Code Online (Sandbox Code Playgroud)

USB 上没有任何物理开关,错误似乎不是由权限问题引起的。我什至尝试通过使用修改其权限

sudo chown root:root -R /dev/sdc
sudo chmod 666 /dev/sdc
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在。其他 USB 工作正常。我试过将一个(较小的)工作的 USB 闪存到不工作的 USB 上

sudo dd if=/dev/sdd of=/dev/sdc status=progress
Run Code Online (Sandbox Code Playgroud)

现在问题仍然存在,我什至无法使用非工作 USB 的每一 GB

sdc      8:32   1   7.5G  0 disk
??sdc1   8:33   1   3.7G  0 part
Run Code Online (Sandbox Code Playgroud)

我客观上不知道我在做什么和做什么,所以如果你知道任何事情,请马上说出来。

partition dd fdisk cfdisk partition-table

2
推荐指数
1
解决办法
107
查看次数

分区 /dev/loopXX

当我今天检查我的磁盘空间时,df -h我注意到所有这些 /dev/loopXX 分区,但我不知道它们到底是什么。

在此输入图像描述

它们是什么?我应该保留它吗?

谢谢。

debian fdisk partition-table

2
推荐指数
2
解决办法
228
查看次数

如果我粉碎 /dev/sda,我是否删除分区?

如果我正在擦除/dev/sda硬盘驱动器,是否需要先对其重新分区(例如,使用 GParted),还是也将shred /dev/sda擦除分区表?

partition shred partition-table

0
推荐指数
1
解决办法
2939
查看次数