DISK=/dev/sdX 是什么?

DISK=/dev/sdX 是什么?

我正在关注关联 创建可启动 SD 卡。我卡在了mkfs.ext4 <= 1.42

for: DISK=/dev/mmcblk0

终端抱怨未找到“for”命令。我想我应该把“for”去掉?下一步:

for: DISK=/dev/sdX
sudo mount ${DISK}1 /media/rootfs/

终端抛出此错误:

mke2fs 1.42.13 (17-May-2015)
The file /dev/sdX1 does not exist and no size was specified.

我做错了什么?另外,我怎样才能将 mke2fs 更新到 mke2fs 1.43-WIP(2016 年 3 月 15 日)?谢谢。

答案1

“for: DISK=/dev/mmcblk0”和“for: DISK=/dev/sdX”这两行仅供您查看,而不是命令行。“for:”仅指向以下指令:教程,它们是命令行并且应该运行。


以下命令行设置环境变量DISK

  • 对于通过 PCI 读卡器连接的卡

    DISK=/dev/mmcblk0
    
  • 对于通过 USB 读卡器连接的卡,

    DISK=/dev/sdX
    

    在这种情况下你应该替换X为实际的驱动器号abc...), 所以例如/dev/sdb,您可以通过命令识别

    sudo lsblk --fs     # Output info about filesystems
    sudo lsblk --perms  # Output info about device owner, group and mode
    sudo parted -ls     # --list: lists partition layout on all block devices; --script: never prompts for user intervention
    

    一般来说,您可以使用上面的命令来了解卡是如何连接和识别的。

此环境变量将在下一个命令中使用教程例如${DISK}(取决于 的版本mkfs.ext4),

  • 通过 PCI 连接时

    sudo mkfs.ext4 -L rootfs -O ^metadata_csum,^64bit ${DISK}p1
    
  • 或通过 USB 连接

    sudo mkfs.ext4 -L rootfs -O ^metadata_csum,^64bit ${DISK}1
    

${DISK}p1${DISK}1指定分割您想要创建ext4文件系统的地方。

答案2

不要使用 for:尝试使用export命令并安装部分,就像 Cornea Valentin 说的那样,使用以下命令检查是否检测到您的目标

sudo fdisk -l /dev/mmcblk0

如果检测到且安装过程中仍然存在问题,请尝试以下操作:

sudo mount -v -t ext4 /dev/mmcblk0 /media/rootfs

答案3

For不是一个命令,他给出了两个不同分区标签的示例,因为 /sdX 和 /mmcblk 对分区有不同的表示法。

sdX 是块设备(HDD、SSD、USB)的通用符号。“X”由设备安装顺序决定的字母替换。

更改他使用的通用语句以获取系统中的特定信息。使用lsblk查找 Linux 为您的 SD 卡使用的标签。然后在语句中使用它DISK=

例子:

DISK=/dev/sdb -- partition=/dev/sdb1  

或者

DISK=/dev/mmcblk0 -- partition=/dev/mmcblk0p1

答案4

检查目标是否真的存在磁盘管理或者分区

sudo fdisk -l

必须安装 gparted:

sudo apt install gparted

相关内容