/dev/sda 存在,但 /dev/sda1 和 /dev/sda2 缺失

/dev/sda 存在,但 /dev/sda1 和 /dev/sda2 缺失

我有一个 file.img 文件,是通过运行获得的dd if=/dev/sda of=file.img。这是在具有两个分区 /dev/sda1 和 /dev/sda2 的设备上完成的。为了使用相同的映像刷新新设备,我使用网络启动来启动 Alpine Linux,从网络复制 file.img 并运行dd if=file.img of=/dev/sda.此操作已成功完成,如果我重新启动,设备将正常启动。

问题是我想向新设备添加一些文件。当然,我想我只需安装 /dev/sda2 (这是我想要添加内容的设备)并在那里添加内容。好吧,没那么简单:/dev/sda2 有时会丢失。运行 dd 命令后,有时(未观察到任何模式)分区会丢失。使用检查磁盘fdisk -l /dev/sda显示两个分区。

运行partprobe /dev/sda; dmesg始终显示(dmesg 命令输出此信息),sda: sda1 sda2因此分区在那里并且正在被识别。尽管如此,它们并没有出现在/dev/.

有趣的是,跑步partprobe /dev/sda有时可以解决问题,有时则不能。

有了所有这些疯狂,重新启动设备将始终正确启动。

如果有人知道我可以尝试什么,我将非常感激这些想法。

谢谢。

PS:我也尝试过跑步partx -uv /dev/sda。这告诉我:

partition: none  disk: /dev/sda, lower: 0, upper: 0
/dev/sda: partition table type 'dos' detected
/dev/sda: partition #1 added
/dev/sda: partition #2 added

但在/dev/sdaX下仍然找不到分区

答案1

对于任何寻求此问题解决方案的人,您可以:

  1. 在 /dev 下创建您的设备条目。添加 /dev/sda2 的示例如下:

mknod -m 660 /dev/sda2 b 8 2

  1. 尝试运行

mdev -s

第二个命令让我的生活更轻松,到目前为止它的工作没有任何问题。 Mdev 的手册页:

Usage:
    mdev [-vS] 

        -v        Verbose
        -S        Log to syslog too
        -s        Scan /sys and populate /dev
        -d        Daemon, listen on netlink
        -f        Run in foreground

相关内容