我目前正在尝试构建一个从零开始的Linux分区(LFS)。这是我的第一次尝试,我这样做是为了挑战我自己,但我在开始的时候遇到了困难。
我正在使用一个Raspberry Pi 3,一个16 my的Micro,目前安装在Ubuntu20.04LTS作为我的基础。不过,我在分配分区时遇到了麻烦。
这是一个混乱的问题,但任何额外的清晰度或推荐阅读/研究是受欢迎的!
/dev/
作为实际的分区安装空间?(来源)我不太清楚这意味着什么。我需要找一个不同的地方尝试安装我的新分区吗?/dev/sda/
,/dev/sdb/
等在我的/dev/
。Ubuntu和Ubuntu对于SBC是正常的吗?我觉得这与我的第一个问题有关,但仍然不清楚为什么会这样。MAKEDEV
显然不能动态管理分区?是否有一种方法可以将其设置为动态管理,或者因为我正在使用它构建我的LFS分区,这是否重要?我尝试从我的/dev/sda/
中用sudo MAKEDEV sda
创建D21
,但显然没有安装MAKEDEV
的二进制文件。我目前正试图为它找到所需的软件包(不确定这是否会解决我的整体问题,尽管不欢迎任何建议)。
user@host:~$ cfdisk /dev/sda
cfdisk: cannot open /dev/sda: No such file or directory
user@host:~$ sudo cfdisk /dev/sda
cfdisk: cannot open /dev/sda: No such file or directory
user@host:~$ cat /proc/partitions
major minor #blocks name
7 0 24084 loop0
7 2 62720 loop2
7 3 49608 loop3
7 4 26564 loop4
7 5 65316 loop5
7 6 49956 loop6
179 0 15558144 mmcblk0
179 1 262144 mmcblk0p1
179 2 15294959 mmcblk0p2
user@host:~$ ll /dev/sd*
ls: cannot access '/dev/sd*': No such file or directory
user@host:~$ ll /dev/disk/by-path/
total 0
drwxr-xr-x 2 root root 100 Jan 1 1970 ./
drwxr-xr-x 7 root root 140 Jan 1 1970 ../
lrwxrwxrwx 1 root root 13 Aug 4 23:07 platform-3f202000.mmc -> ../../mmcblk0
lrwxrwxrwx 1 root root 15 Aug 4 23:07 platform-3f202000.mmc-part1 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 15 Aug 4 23:07 platform-3f202000.mmc-part2 -> ../../mmcblk0p2
我正在尝试使用/dev/sd*/
或其他方法创建MAKEDEV
分区,然后继续使用cfdisk
来尝试并完成我的构建的这一部分。对这件事有什么想法,我是想得太多了,还是误解了我需要做的事情?
发布于 2020-08-06 18:32:03
您的系统有一个SD/MMC读卡器,它不使用(最初基于SCSI的)统一存储设备命名。它使用不同的设备名称样式:您的整个磁盘设备是/dev/mmcblk0
,它的分区被列为mmcblk0p
,其中是分区的编号。是的,对于SD/MMC读卡器来说,使用专用驱动程序而不是USB海量存储接口是正常的。
所以,您需要在这里使用sudo cfdisk /dev/mmcblk0
。
此外,如果您正在遵循一本面向泛型或x86硬件的“Linux从头开始”的书,那么您应该记住,您需要用/dev/mmcblk0
来代替对/dev/sda
或类似的任何引用,无论何时何地,预期的意思是“我的系统磁盘作为一个整体磁盘”。同样,当您将/dev/sda1
看作是对“我的系统磁盘的第一个分区”的引用时,您应该用/dev/mmcblk0p1
代替它。其他分区也是如此。
不,/dev/
不是分区安装空间。据我所知,没有隔断安装的空间。任何目录都可以充当另一个文件系统的挂载点。如果您想知道您应该在哪里安装点,那么您可能应该看看文件系统层次标准(FHS)。虽然你完全可以自由地做你自己的事情,如果你选择这样做。
通常情况下,一个目录在用作挂载点时应该是空的,因为任何现有的内容都会被隐藏,而挂载的文件系统的根目录的内容将被显示出来。(在Linux中,系统管理员可以“查看”安装的文件系统,但我偏离了.)
/dev
是设备节点(设备文件)的目录子树.只有他们,以及他们的子目录,通常应该在这个子树中.
在现代Linux系统中,/dev
通常是一个基于RAM的文件系统(类型为tmpfs
或devtmpfs
),由udev
自动管理。因此,通常只会看到系统上实际存在的设备的设备节点,并加载了它们的内核级驱动程序。
例如,如果您在SD卡上创建了第三个分区,您应该会看到/dev/mmcblk0p3
自动出现。如果删除第二个分区,/dev/mmcblk0p2
就会消失。
设备节点不是普通文件:它们本质上是内核中特定设备驱动程序的连接点,驱动程序控制硬件(或软件)设备(S)。
在开发动态管理的/dev
文件系统之前,/dev
过去只是根文件系统上的一个目录,包含设备节点。一组设备节点将在OS安装时创建,并在磁盘上的文件系统中持久化,就像普通文件一样。
(换句话说,/dev/
基本上只是一种机制,可以将一个内核友好的设备规范“块设备、驱动程序#179、设备#1”映射到更易于人类阅读的名称,如/dev/mmcblk0p1
,反之亦然)。
创建(或重新创建,如果由于任何原因而被删除)设备节点的标准方法是mknod
命令,以及一个名为MAKEDEV
的脚本,它将使用mknod
命令的循环来使用单个命令创建各种标准设备集。
不,MAKEDEV
与分区本身无关。它也不会动态管理任何东西(设备节点和分区)。它是大规模创建老式静态管理设备节点的工具。
动态管理/dev
目录树很可能涉及安装udev
。如果你和LFS一起工作,那可能会在以后.也许过得很晚。
据我所知,创建一个分区“动态管理”并不是一件真正的事情。除非这是一种奇怪的说法“使用逻辑卷管理器(LVM)",也许?
https://unix.stackexchange.com/questions/603205
复制相似问题