标签: fdisk

partprobe 是如何工作的?

我一直在寻找一种方法来刷新 scsi 总线(或任何其他总线,就此而言),这将允许我的内核(CentOS 5.5 上的 2.6.18-194-el5)了解驱动器上的分区,我不能没有办法。partprobe 立即做到了。如何?

由于这很重要,这就是我正在做的事情:

我想在特定于分区的事情上得到一些练习,比如调整大小、备份 MBR 和恢复它,等等。我在 /dev/sdb 上创建了一个 20GB 的分区,备份了 MBR:

dd if=/dev/sdb of=sdb.mbr bs=512 count=1

然后我进入fdisk,删除分区,写入,然后退出。

ls /dev/sdb*

显示没有分区,并且

fdisk -l /dev/sdb'

匹配,所以我认为我很好。

然后我颠倒了dd:

dd if=sdb.mbr of=/dev/sdb bs=512 count=1

当然,当时我什么也没做,所以

ls /dev/sdb*

没有列出任何分区,但是

fdisk -l

显示分区,大概是因为它读取磁盘上的前 512 个字节并且不依赖于内核。我知道我必须刷新总线,所以我进入/sys/class/scsi_host/host1,然后做了

回声“- - -” > 扫描

和做

ls /dev/sdb

没有显示任何新内容,所以我去了 /sys/bus/scsi/devices 并且对于列出的每个设备,我都做了

回声 1 > 重新扫描

那没有用。

然后我对该问题进行了更多研究,并遇到了parted 附带的'partprobe'。我运行了它,它立即生效。

如果我在这里没有得到可能的答案,我可能会去获取源代码并查找它,但我认为这里有超出我的巫师,所以我想我会吸引你们所有人。

partition fdisk parted

12
推荐指数
1
解决办法
9361
查看次数

挂载 GPT 磁盘分区时出现问题

我正在尝试在 GPT 磁盘上挂载分区,但出现以下错误:

$ sudo mount -t ext4 /dev/sda1 disk/
mount: special device /dev/sda1 does not exist
Run Code Online (Sandbox Code Playgroud)

查看 dmesg,我在 /dev/sda 上没有看到任何错误:

$ dmesg | grep sda
[    1.367508] sd 0:0:0:0: [sda] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB)
[    1.367514] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    1.367607] sd 0:0:0:0: [sda] Write Protect is off
[    1.367611] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.367654] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO …
Run Code Online (Sandbox Code Playgroud)

partition fdisk hard-disk gpt

12
推荐指数
1
解决办法
7万
查看次数

如何在不重启的情况下使用新的 fdisk 表 (kpartx)?

当我运行 fdisk 并更改分区的大小时,fdisk 在其输出的末尾说:

The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8)
Run Code Online (Sandbox Code Playgroud)

我想这样做而不必重新启动(然后编写一个执行此操作的脚本) 如何使用kpartx正确执行此操作?我试过了:

kpartx -f -v /dev/mmcblk0
Run Code Online (Sandbox Code Playgroud)

哪些输出:

mmcblk0p1 : 0 102400 /dev/mmcblk0 2048
mmcblk0p2 : 0 7657472 /dev/mmcblk0 104448
Run Code Online (Sandbox Code Playgroud)

和:

kpartx -a -v /dev/mmcblk0
Run Code Online (Sandbox Code Playgroud)

输出:

device-mapper: reload ioctl on mmcblk0p1 failed: Invalid argument
create/reload failed on mmcblk0p1
add map mmcblk0p1 (0:0): 0 102400 linear /dev/mmcblk0 2048
device-mapper: reload ioctl on mmcblk0p2 failed: Invalid argument
create/reload failed on …
Run Code Online (Sandbox Code Playgroud)

debian fdisk

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

cfdisk 还是 fdisk?

在阅读手册页时,fdisk我遇到了这段有趣的文字:

有几个 *fdisk 程序。每个人都有自己的问题和优势。按 cfdisk、fdisk、sfdisk 的顺序尝试它们。(确实,cfdi​​sk 是一个漂亮的程序,它对它接受的分区表有严格的要求,并生成高质量的分区表。如果可以,请使用它。fdisk 是一个有缺陷的程序,它会做一些模糊的事情——通常它会产生合理的分区表)结果。它的唯一优点是它对 BSD 磁盘标签和其他非 DOS 分区表有一定的支持。如果可以,请避免使用它。sfdisk 仅供黑客使用 -- 用户界面很糟糕,但它比 fdisk 更正确,并且比 fdisk 和 cfdisk 都更强大。而且,它可以非交互地使用。)

我注意到两个应用程序的选项格式不同:

 - melancholy():/$ sudo fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00036f1b

   Device Boot      Start         End      Blocks   Id  System …
Run Code Online (Sandbox Code Playgroud)

linux command-line fdisk cfdisk

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

为什么即使块设备的物理扇区大小为 4096,fdisk 仍然喜欢 512 字节的扇区大小?

我有一个 4096 字节扇区的磁盘:

# cat /sys/class/block/sda/queue/physical_block_size
4096
#
Run Code Online (Sandbox Code Playgroud)

出于某种原因,fdisk更喜欢使用 512 字节扇区显示有关磁盘的信息:

Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ST500DM002-1BD14
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000d98d6

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 976773167 976771120 465.8G 83 Linux

Run Code Online (Sandbox Code Playgroud)

出于好奇,为什么fdisk更喜欢使用 512 字节的扇区大小?我正在使用fdisk版本2.33.1

fdisk

11
推荐指数
1
解决办法
1205
查看次数

以编程方式分区磁盘

我正在尝试创建一个 bash 脚本,该脚本将在具有现有分区的磁盘上创建一个带有文件系统的新分区。

看起来用parted以编程方式创建分区很容易,但是它需要您知道从哪里开始和停止新分区,这就是我遇到麻烦的地方。

我不想依赖具有特定位置/大小的分区的磁盘。也就是说,我想在最后一个现有分区之后立即开始创建一个新分区。然后我希望能够创建固定大小的分区,或者填充剩余空间。

在 Bash 中,是否有可靠的方法来确定

a) 最后一个分区的结束位置,以及
b) 最后一个分区后剩余的未分区空间?

bash partition fdisk parted

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

pvcreate:无法使用/dev/sda:设备已分区

我目前正在安装 arch linux,当我尝试创建物理卷时,它给了我这个错误。

Can not use /dev/sda: device is partitioned
Run Code Online (Sandbox Code Playgroud)

这个错误是什么?我该如何消除它?

PS:我已经格式化了磁盘mkfs.ext4 /dev/sda

partition fdisk pv

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

使用 UUID 引用整个磁盘 (/dev/sda)

在我的系统 (Debian) 上,我可以看到UUID所有磁盘分区的标识符(即/dev/sda1, dev/sda2, ..)

ls /dev/disk/by-uuid/
Run Code Online (Sandbox Code Playgroud)

但是,我没有看到自己的UUID标识符/dev/sda。是否可以引用整个磁盘UUID

我需要这个是因为我想引用一个特定的磁盘,我不能相信它会被调用/dev/sda

编辑

@don_crissti 建议的解决方案很棒。但是,我希望相同型号/制造商的所有硬盘的 UUID 相同,而不是序列号唯一。

使用udevadm,我可以看到磁盘属性:

udevadm info -n /dev/sda -a
ATTRS{model}=="Samsung SSD 840 "
ATTRS{vendor}=="0x8086"
ATTRS{class}=="0x010700"
ATTRS{device}=="0x1d6b"
....
Run Code Online (Sandbox Code Playgroud)

如何UUID从这些属性生成 a ,以便相同的 Model/Manufacturer 磁盘将具有相同的UUID

udev fdisk uuid disk

9
推荐指数
1
解决办法
8969
查看次数

“fdisk -l”输出:什么是磁盘标签类型和“磁盘标识符”

fdisk -l 输出:

.
.
Disk label type: dos
Disk identifier: 0x0006a8bd
.
.
Run Code Online (Sandbox Code Playgroud)

什么是Disk label typeDisk identifier

另外,除了手册之外,我还能在哪里找到有关磁盘管理/分区等的更多信息?

linux partition fdisk disk

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

修复坏块

得到后

WARNING: Your hard drive is failing
Device: /dev/sdb [SAT], 1 Offline uncorrectable sectors
Run Code Online (Sandbox Code Playgroud)

我跑

$ sudo smartctl -a /dev/sdb
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-514.26.2.el7.x86_64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     KingDian S200 60GB
Serial Number:    2017022100551
LU WWN Device Id: 0 000000 000000000
Firmware Version: P0707F1
User Capacity:    60,022,480,896 bytes [60.0 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        Not in smartctl …
Run Code Online (Sandbox Code Playgroud)

ssd disk-usage fdisk hard-disk disk

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

标签 统计

fdisk ×10

partition ×5

disk ×3

hard-disk ×2

linux ×2

parted ×2

bash ×1

cfdisk ×1

command-line ×1

debian ×1

disk-usage ×1

gpt ×1

pv ×1

ssd ×1

udev ×1

uuid ×1