有没有办法只同步一个分区而不是所有分区?
类似于“同步/dev/sdc1”。
我正在使用 AIF(Arch 安装框架)编写自定义自动安装,我需要在给定分区的分区上找到文件系统。
到目前为止,我有这个:
grok_partitions () {
local partitions=
for label in `ls /dev/disk/by-label | grep "Arch"`
do
if [ $label == "Arch" ]
then
mount_point="/"
else
IFS="-" read base mount <<< "${label}"
mount_point="/${mount}"
fi
local partition=$(readlink -f /dev/disk/by-label/${label})
local part_no=$(echo ${partition} | grep -Po '\d+')
local fs=$(parted -mls | grep "^${part_no}" | cut -d: -f5)
partitions+="${partition} raw ${label} ${fs};yes;${mount_point};target;no_opts;${label};no_params\n"
done
# do the swap
if [ -e /dev/disk/by-label/swap ]
then
local partition=$(readlink -f /dev/disk/by-label/swap)
partitions+="$partition raw swap swap;yes;no_mountpoint;target;no_opts;swap;no_params"
else …Run Code Online (Sandbox Code Playgroud) 我不小心用 GParted 覆盖了我的 /dev/sda 分区表(AskUbuntu 上的完整故事)。由于我还没有重新启动并且我的文件系统仍然完全可用,我被告知我可能能够从内核内存中恢复分区表。那可能吗?如果是这样,我如何恢复它并恢复它?

我正在寻找一种可移植的方式来获取/dev/sda给定分区设备名称(例如/dev/sda1)的父块设备名称(例如)。我知道我可以删除最后一个字符,但在某些情况下不起作用:
/dev/mmcblk0,而它们的分区名称则类似于/dev/mmcblk0p1(注意额外的p)。LVM 卷是完全不同的鱼。我现在不需要支持他们,但如果考虑到他们需要一点额外的努力,我不会介意。
有谁知道是否有一种优雅的方法可以告诉外部 USB 驱动器在一段时间不活动后不要减速?我见过基于 cron 的解决方案每分钟写入一个文件,但没有任何东西散发出unixey 优雅的气息。必须有一个 hdparm 或 scsi 命令,我可以向驱动器发出(通过 OpenBSD 中的 sd 驱动程序访问 USB 驱动器)来告诉它不要休眠。恐怕这可能是机箱控制器内置的一个功能,因此除了将驱动器从机箱中取出并直接放入机器之外,没有太多可以改变它,但我想我会问,在关闭的机会。
理想情况下,我正在寻找 OpenBSD 解决方案,但我知道还有其他解决方案存在同样的问题,因此将考虑任何解决方案作为答案。
我有一些固态硬盘安装起来就/dev/sda1和/dev/sdb1一个SLES 11 SP2服务器上,而我能调整的预读设置有blockdev --setra:
sudo blockdev --setra 4096 /dev/sda
sudo blockdev --setra 4096 /dev/sdb
sudo blockdev --getra /dev/sda
4096
sudo blockdev --getra /dev/sdb
4096
Run Code Online (Sandbox Code Playgroud)
如何在启动时保留此设置?具体来说,sysctl.conf.
我想在设置中测试一些物理链接。我可以用来测试这个的软件工具需要一个块设备来读/写。我可用的块设备无法使物理链路饱和,因此我无法对其进行全面测试。
我知道我可以设置一个由文件支持的虚拟块设备。所以我的想法是以某种方式将虚拟块设备设置为 /dev/null 但问题当然是我无法从中读取。有没有一种方法可以设置一个写入 /dev/null 但在读取时总是返回零的虚拟块设备?
感谢您的任何帮助!
GNU/Linux 具有覆盖目录的联合挂载。因此,您可以在只读目录之上安装可写目录。当可写目录被卸载时,只读目录保持不变。
我正在为块设备寻找相同的功能 - 最好将可写部分存储在文件中。所以我想运行类似的东西:
device-setup /dev/newdevice /dev/read-only-device overlayfile
Run Code Online (Sandbox Code Playgroud)
如果我写入 /dev/newdevice 更改应该存储在覆盖文件中。如果我读取写入的扇区,我应该从覆盖文件中获取数据。如果我读取未写入的扇区,我应该从 /dev/read-only-device 获取数据。
有这样的工具吗?
看看块设备命令喜欢什么lsblk或blkid返回什么,似乎linux HDD支持SCSI驱动程序而不管设备的类型,就像一个USB闪存驱动程序,在lsblk命令中显示如下:
...
sdb 8:16 1 30G 0 disk
??sdb1 8:17 1 30G 0 part /run/media/user/HP v224w
...
Run Code Online (Sandbox Code Playgroud)
为什么 sdb 和 sda 驱动程序被称为 SCSI 驱动程序?这个术语有什么关系Small Computer System Interface?
是否有一个实用程序(或一些 shell 魔法)可以让我比较两个块设备?
详细信息:我有一个大型 (0.5 TB) RAID 设备,我已使用 dd 将其备份到稍大的 SATA 设备。该设备上有多个分区,但是我从“父”设备而不是分区设备节点复制(例如,我复制 /dev/hda 而不是 /dev/hda1)。
我想验证备份是否良好/正确。
我曾考虑过在每个设备上运行 md5sum,但是这不会给我一个准确的结果,因为第二个设备比第一个设备稍大,因此额外的字节会改变散列。
block-device ×10
linux ×3
filesystems ×2
hard-disk ×2
partition ×2
scsi ×2
buffer ×1
cache ×1
command-line ×1
dd ×1
drivers ×1
kernel ×1
loop-device ×1
networking ×1
null ×1
openbsd ×1
shell-script ×1
sles ×1
snapshot ×1
ssd ×1
usb-drive ×1