我正在关注关联
创建可启动 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
为实际的驱动器号(a
,b
,c
...), 所以例如/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