当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 概述在本文中,学习硬盘分区和 Linux 文件系统有关内容。学习:创立分区;运用 mkfs 命令来配置 ext2、ext3、xfs、reiserfs v3 和 vfat 文件系统;创立和维护交流空间。本文

 概述

在本文中,学习硬盘分区和 Linux 文件系统有关内容。学习:

创立分区;

运用 mkfs 命令来配置 ext2、ext3、xfs、reiserfs v3 和 vfat 文件系统;

创立和维护交流空间。

本文协助您预备 Linux Professional Institute's Junior Level Administration (LPIC-1) 考试 101 中主题 104 下的目标 104.1。该目标的权值为 2。

先决条件

为了最有效地使用本系列中的文章,您应该具有根本的 Linux 知识,并须要预备一个 Linux 系统,用于练习本文引见的命令。有时分不一样版本的顺序输出格式不一样,因而您所得到的后果未必总是与这里所示的清单和图类似。

您还应该熟识我们的文章 “学习 Linux,101:硬盘规划” 中的内容。

块配备和分区

我们的文章 “学习 Linux,101:硬盘规划” 引见了硬盘驱动器规划、分区、以及运用 fdisk 命令来检查分区信息的根本知识。您学习了主分区、扩展分区 和逻辑分区 等分区的有关知识,明白到 Linux 文件系统包含一些文件,它们存储在硬盘上或目录 中的块存储配备 上。与许多其他系一致样,Linux 系统上的目录也可以够包含其他目录,这些目录称为子目录。这篇文章还探讨了一些指点您举行分区挑选的留意事项。

本文将最先回忆一下块配备和分区,然后进一步展现如何运用 fdisk 命令创立、修正或删除块配备上的分区。您还将学习 mkfs(mkfs 代表 make filesystem) 命令的各种方式;mkfs 命令用于将分区格式化为一种特殊的文件系统类型。

留意:除了 LPI 考试要求的工具和文件系统外,您能够会遇到或须要其他工具和文件系统。其他工具和文件系统 小节提供了其他可用工具的一个容易摘要。

块配备

块配备 是能够以固定大小块 格式化的恣意存储配备的笼统层。单独的块的访问能够独立于其他块的访问。这样的访问通常称为随机访问。

随机可访问的固定大小块的笼统层准许顺序运用这些块配备,而无需担忧底层配备是硬盘驱动器、软盘、CD、固态(solid-state)驱动器、网络驱动器,仍旧某种虚拟配备,比如内存中文件系统。

块配备示例包含系统上的第一 IDE 硬盘驱动器(/dev/sda 或 /dev/hda)或第二 SCSI、IDE 或 USB 驱动器(/dev/sdb)。运用 ls -l 命令来显示 /dev 条目。每行输出的第一个字符是 b(针对一个块 设 备,比如软盘、CD 驱动器、IDE 硬盘驱动器或 SCSI 硬盘驱动器)和 c(针对一个字符配备,比如 a、终端(tty)或空配备。清单 1 展现了一些示例。

清单 1. Linux 块配备和字符配备

[ian@echidna ~]$ ls -l /dev/loop1 /dev/null /dev/sd[ab] /dev/sr0 /dev/tty0

brw-rw----. 1 root disk  7, 1 2010-06-14 07:25 /dev/loop1

crw-rw-rw-. 1 root root  1, 3 2010-06-14 07:25 /dev/null

brw-rw----. 1 root disk  8, 0 2010-06-14 07:25 /dev/sda

brw-rw----. 1 root disk  8, 16 2010-06-14 07:25 /dev/sdb

brw-rw----+ 1 root cdrom 11, 0 2010-06-14 07:25 /dev/sr0

crw--w----. 1 root root  4, 0 2010-06-14 07:25 /dev/tty0

分区

关于某些块配备,比如软盘和 CD 或 DVD 硬盘,通常运用整个媒体作为单个文件系统。但是,关于大型硬盘驱动器,甚至是 USB 存储器,更罕见的用法是将可用空间划分为多个不一样的分区。

分区的大小能够不一样,不一样的分区上能够拥有不一样的文件系统,因而一个硬盘能够用于多种目标,包含在多个操作系统之间共享该硬盘。比如,我运用的测试系统包含多个不一样的 Linux 发行版,有时还包含一个 Windows® 系统,它们都共享一个或两个硬盘驱动器。

文章 “学习 Linux,101:硬盘规划” 引见过,硬盘驱动器拥有一个几何参数(geometry),依据术语柱面、磁头和扇区定义。即便是当今驱动器也运用逻辑块寻址 (LBA),这使得几何参数变得几乎没关紧要,用于分区目标的根本分配单元通常照旧是柱面。

显示分区信息

分区信息存储在硬盘上的分区表 中。分区表列示每个分区的起始柱面和完毕柱面的有关信息,关于它的类型 的信息,以及它能不能标志为可引导。要创立和删除分区,须要运用一个专门设计的顺序来编辑分区表。关于 LPI 考试,您须要明白 fdisk 顺序,这也是本文引见的顺序,虽然也可以够运用其他多个工具。本文末尾将提到其中多个工具。

fdisk 命令加上 -l 选项用于列示分区。假设想检查一个特定驱动器上的分区,须要添加一个配备称号,比如 /dev/sda。留意,分区工具须要根访问权限。清单 2 展现了我的系统的两个主硬盘驱动器上的分区。

清单 2. 运用 fdisk 列示分区

[root@attic4 ~]# fdisk -l /dev/sda

Disk /dev/sda: 640.1 GB, 640135028736 bytes

255 heads, 63 sectors/track, 77825 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00064a1a

Device Boot   Start     End   Blocks  Id System

/dev/sda1        1     127   1020096  83 Linux

/dev/sda2       128    1402  10241437+ 82 Linux swap / Solaris

/dev/sda3  *    46340    56538  81920000  83 Linux

/dev/sda4      1403    46339  360956422  5 Extended

/dev/sda5      1403    10420  72437053+ 83 Linux

/dev/sda6      10421    19344  71681998+ 83 Linux

/dev/sda7      19345    28350  72340663+ 83 Linux

/dev/sda8      28351    37354  72324598+ 83 Linux

/dev/sda9      37355    46339  72171981  83 Linux[!--empirenews.page--]

Partition table entries are not in disk order

[root@echidna ~]# fdisk -l /dev/sda

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes

255 heads, 63 sectors/track, 121601 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x000de20f

Device Boot   Start     End   Blocks  Id System

/dev/sda1  *      1    9111  73184076  7 HPFS/NTFS

/dev/sda2      9634    9730   779152+ 83 Linux

/dev/sda3      9731   116679  859067842+  5 Extended

/dev/sda5      9731    20917  89859546  83 Linux

/dev/sda6      20918    39644  150424596  83 Linux

/dev/sda7      39645    53905  114551451  83 Linux

留意:

标题信息显示硬盘大小和几何参数。大非少数运用 LBA 的硬盘每个柱面拥有 255 个磁头,每个磁道拥有 63 个扇区,总共拥有 16065 个扇区,或许每个柱面 8225280 字节。

在第二个示例中,第一个主分区(/dev/sda1)标志为 bootable(或 active)。这准许规范 DOS PC 主引导记载引导该分区。这个标志对 LILO 或 GRUB 引导装载顺序没有意义。第一个示例运用 GRUB 作为引导装载顺序,/dev/sda3 被标志为 bootable 的原由能够是我以前运用这个驱动器的一次不测。

Start 和 End 列显示每个分区的起始和完毕柱面。这些分区不能堆叠且通常应该相邻,即中间没有空间。

Blocks 列显示大小为 1K(1024 字节)的块的数目。关于本文撰写之时运用的大非少数硬盘而言,扇区大小是 512 字节,因而一个分区中的块的最大数目是柱面数目(End + 1 - Start)和每个柱面的扇区数目标乘积的一半。块数目后面的 + 号示意分区中的扇区没有所有运用。

Id 列示意分区的预定用途。类型 82 是示意 Linux 交流分区,类型 83 示意 Linux 数据分区。已定义的分区类型大约有 100 种。第二个硬盘由多个操作系统共享,其中包含 Windows/xp,因而出现了 Windows NTFS(也可以够是 FAT32)分区。

运用 fdisk 举行分区

您刚刚曾经看到如何运用 fdisk 命令来显示分区信息。这个命令还提供了一个菜单驱动的环境来编辑分区表,以便创立或移除分区。

劝诫

开端修正分区之前,须要记得一些首要事项。假设不恪守以下这些准绳,就会出现丧失您的现有限据的风险。

开端之前备份首要数据,举行任何能够会招致数据丧失的操作之前都应这样做。

不要更矫正在运用的分区。事前细致方案,然后留意执行。从 CD、DVD 或 USB 启动一个及时发行版是确保没有硬盘驱动器分区正在运用的一个好办法。

明白您的工具。fdisk 命令不会向您的硬盘提交任何修改,除非您要求它那样做。其他工具,其中包含 parted 能够会随着您的操作提交修改。

假设确实犯了错误,那么应立刻中止。分区工具对分区表举行写操作。除非您运用的工具还包含对您的硬盘的数据区域的挪动、大小重置、格式化等写操作功用,否则您的数据将不会遭到影响。假设您确实犯了错误,尽快中止操作并寻求协助。您仍然有能够恢复此前的分区表定义,从而恢复您的分区和数据。

启动 fdisk

要以交互方式启动 fdisk,只需提供一个硬盘的称号(比如 /dev/hda 或 /dev/sdb)作为参数。以下示例启动一个 Knoppix 及时 DVD。您须要根权限,并将看到类似于清单 3 的输出。

清单 3. 启动交互式 fdisk

knoppix@Microknoppix:~$ su -

root@Microknoppix:~# fdisk /dev/sda

The number of cylinders for this disk is set to 121601.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):

大非少数硬盘拥有超越 1024 个柱面,因而您通常会看到清单 3 中显示的劝诫。类型 m 将显示一个可用的单字母命令列表,如清单 4 所示。

清单 4. fdisk 中的协助

Command (m for help): m

Command action

a  toggle a bootable flag

b  edit bsd disklabel

c  toggle the dos compatibility flag

d  delete a partition

l  list known partition types

m  print this menu

n  add a new partition

o  create a new empty DOS partition table

p  print the partition table

q  quit without saving changes

s  create a new empty Sun disklabel

t  change a partition's system id

u  change display/entry units

v  verify the partition table

w  write table to disk and exit

x  extra functionality (experts only)

Command (m for help):

运用 p 命令来显示这个特定硬盘上的现有分区,清单 5 显示输出。

清单 5. 显示现有分区表

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes

255 heads, 63 sectors/track, 121601 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x000de20f

Device Boot   Start     End   Blocks  Id System

/dev/sda1  *      1    9111  73184076  7 HPFS/NTFS[!--empirenews.page--]

/dev/sda2      9634    9730   779152+ 83 Linux

/dev/sda3      9731   116679  859067842+  5 Extended

/dev/sda5      9731    20917  89859546  83 Linux

/dev/sda6      20918    39644  150424596  83 Linux

/dev/sda7      39645    53905  114551451  83 Linux

Command (m for help):

这个特殊硬盘是一个 1TB 硬盘,包含一个略低于 80GB 的 Windows/xp 分区。它是一个主分区,标志为 bootable,这是 Windows 系统的典型特征。

添加分区

如今我们运用局部闲置空间来添加一些分区。

我们将创立一个交流分区:/dev/sda4。这将是一个主分区,填充 /dev/sda1 的完毕柱面和 /dev/sda2 的起始柱面之间的 521 个柱面空隙。您不用对招致这个空隙的奇异原由感到猎奇;我只是为了撰写本文而创立这个空隙。

我们将创立一个 40GB 的逻辑分区:/dev/sda8。

结尾,我们将创立一个 2000MB 的小型逻辑分区,以便在 Linux 和 Windows 系统之间共享数据。这个分区结尾将格式化为 FAT32(或 vfat)。这个分区将命名为 /dev/sda9。

创立我们的分区

我们最先运用 n 命令来创立一个新分区,如清单 6 所示。

清单 6. 创立第一个分区

Command (m for help): n

Command action

l  logical (5 or over)

p  primary partition (1-4)

p

Selected partition 4

First cylinder (9112-121601, default 9112):

Using default value 9112

Last cylinder, +cylinders or +size{K,M,G} (9112-9633, default 9633): +521

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes

255 heads, 63 sectors/track, 121601 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x000de20f

Device Boot   Start     End   Blocks  Id System

/dev/sda1  *      1    9111  73184076  7 HPFS/NTFS

/dev/sda2      9634    9730   779152+ 83 Linux

/dev/sda3      9731   116679  859067842+  5 Extended

/dev/sda4      9112    9633   4192965  83 Linux

/dev/sda5      9731    20917  89859546  83 Linux

/dev/sda6      20918    39644  150424596  83 Linux

/dev/sda7      39645    53905  114551451  83 Linux

Partition table entries are not in disk order

Command (m for help):

我们采用默许值作为第一个柱面并指定值 +521 作为柱面的数目。清单 6 显示,我们的分区大小约为 4GB。由于它是一个主分区,因而它的编号必需为 1 至 4。顺序指定分区编号是个好主意;否则一些工具会报告错误,fdisk 将劝诫我们:我们的分区表条目不再按硬盘顺序陈列。

还要留意一点:我们的新分区类型被指定为 83,标明这是一个 Linux 数据分区。能够将这个数字视为分区预定用途的操作系统的指示符。分区的结尾用途应该婚配这个配置,但这时我们的分区甚至还没有格式化,更谈不上有限据了。我们将最先创立其他分区,然后引见如何修改分区类型。

您能够曾经留意到,当我们输进 n 子命令创立一个新分区时,唯一的挑选是 “l”(示意逻辑分区)和 “p”(示意主分区)。您只好看到剩余的能够分区类型的选项。假设驱动器还没有扩展分区,您将看到选项 “e”(示意扩展分区)。还要留意,我们的扩展分区(/dev/sda3)为类型 5。

如今我们来定义 40GB Linux 分区和 2000MB FAT32 分区。这次我们只需指定大小 +40G 和 +2000M,辨别示意 40GB 和 2000MB。后果如清单 7 所示。

清单 7. 创立数据分区

Command (m for help): n

First cylinder (53906-116679, default 53906):

Using default value 53906

Last cylinder, +cylinders or +size{K,M,G} (53906-116679, default 116679): +40G

Command (m for help): n

First cylinder (59129-116679, default 59129):

Using default value 59129

Last cylinder, +cylinders or +size{K,M,G} (59129-116679, default 116679): +2000M

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes

255 heads, 63 sectors/track, 121601 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x000de20f

Device Boot   Start     End   Blocks  Id System

/dev/sda1  *      1    9111  73184076  7 HPFS/NTFS

/dev/sda2      9634    9730   779152+ 83 Linux

/dev/sda3      9731   116679  859067842+  5 Extended

/dev/sda4      9112    9633   4192965  83 Linux

/dev/sda5      9731    20917  89859546  83 Linux

/dev/sda6      20918    39644  150424596  83 Linux

/dev/sda7      39645    53905  114551451  83 Linux

/dev/sda8      53906    59128  41953716  83 Linux

/dev/sda9      59129    59384   2056288+ 83 Linux

Partition table entries are not in disk order

Command (m for help):

修改分区类型

在分开 fdisk 之前,我们将修改 swap 和 vfat 分区的分区类型。为此,我们运用 t 子命令来配置分区类型。我们将 /dev/sda4 配置为类型 82(Linux 交流分区),将 /dev/sda9 配置为类型 9(FAT32)。假设您想检查受支持类型的完壁列表,请输进 L,如清单 8 所示。[!--empirenews.page--]

清单 8. 修改分区类型

Command (m for help): t

Partition number (1-9): 4

Hex code (type L to list codes): 82

Changed system type of partition 4 to 82 (Linux swap / Solaris)

Command (m for help): t

Partition number (1-9): 9

Hex code (type L to list codes): b

Changed system type of partition 9 to b (W95 FAT32)

Command (m for help):

保管分区表

到当前为止,我们只是对分区表举行了内存中编辑。我们能够用 q 命令退出,不保管修改。假设某些分区不能满足您的要求,您能够运用 d 命令来删除一个或多个分区,以便重新定义它们。假设您对配置满意,则能够运用 v 命令来验证您的配置,然后运用 w 命令来写入新的分区表并退出。参见清单 9。假设您再次运转 fdisk -l 命令,您将看到,Linux 如今已能够识别新分区。与其他操作系统不一样的是,Linux 并不总是须要重新启动才干看到修改。举例来说,假设 /dev/hda3 变成 /dev/hda2,则须要重新启动,由于原来的 /dev/hda2 已被删除。假设须要重新启动,fdisk 应该会通知您。

清单 9. 保管分区表

Command (m for help): v

999521580 unallocated 512-byte sectors

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x

partitions, please see the fdisk manual page for additional

information.

Syncing disks.

root@Microknoppix:~# fdisk -l /dev/sda

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes

255 heads, 63 sectors/track, 121601 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x000de20f

Device Boot   Start     End   Blocks  Id System

/dev/sda1  *      1    9111  73184076  7 HPFS/NTFS

/dev/sda2      9634    9730   779152+ 83 Linux

/dev/sda3      9731   116679  859067842+  5 Extended

/dev/sda4      9112    9633   4192965  82 Linux swap / Solaris

/dev/sda5      9731    20917  89859546  83 Linux

/dev/sda6      20918    39644  150424596  83 Linux

/dev/sda7      39645    53905  114551451  83 Linux

/dev/sda8      53906    59128  41953716  83 Linux

/dev/sda9      59129    59384   2056288+  b W95 FAT32

Partition table entries are not in disk order

高级 fdisk

您能够已留意到,我们没有修改恣意分区上的 bootable 标志。如今,我们的硬盘尚有 Windows Master Boot Record (MBR),因而将启动标志为 bootable 的第一个主分区(我们的示例中为 NTFS 分区)。

LILO 和 GRUB 都不运用 bootable 标志。假设其中一个装置在 MBR 中,那么它就能够引导 Windows/xp 分区。您也可以够将 LILO 或 GRUB 装置到您的 /boot 分区(/dev/hda2)中,将该分区标志为 bootable 并移除 /dev/hda1 的 bootable 标志。假设机器今后将恢复为 Windows 自用机器,那么保管原始 MBR 能够会有用。

假设须要,您还能够运用 fdisk 来修正分区表中的分区顺序。这通常将会修改分区编号,因而您能够须要完成其他任务才干将您的系统恢复为任务系统。要举行这个修改,运用 f 子命令切换到专家方式,然后运用 r 子命令修正分区顺序,如清单 10 所示。假设您只是想看看新的分区顺序而不实践修改,能够运用 q 子命令退出(本例的做法),而不是将更新后的分区表写到硬盘中。

清单 10. 修正分区表顺序

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes

255 heads, 63 sectors/track, 121601 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x000de20f

Device Boot   Start     End   Blocks  Id System

/dev/sda1  *      1    9111  73184076  7 HPFS/NTFS

/dev/sda2      9634    9730   779152+ 83 Linux

/dev/sda3      9731   116679  859067842+  5 Extended

/dev/sda4      9112    9633   4192965  82 Linux swap / Solaris

/dev/sda5      9731    20917  89859546  83 Linux

/dev/sda6      20918    39644  150424596  83 Linux

/dev/sda7      39645    53905  114551451  83 Linux

/dev/sda8      53906    59128  41953716  83 Linux

/dev/sda9      59129    59384   2056288+  b W95 FAT32

Partition table entries are not in disk order

Command (m for help): x

Expert command (m for help): f

Done.

Expert command (m for help): r

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes

255 heads, 63 sectors/track, 121601 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x000de20f

Device Boot   Start     End   Blocks  Id System

/dev/sda1  *      1    9111  73184076  7 HPFS/NTFS[!--empirenews.page--]

/dev/sda2      9112    9633   4192965  82 Linux swap / Solaris

/dev/sda3      9634    9730   779152+ 83 Linux

/dev/sda4      9731   116679  859067842+  5 Extended

/dev/sda5      9731    20917  89859546  83 Linux

/dev/sda6      20918    39644  150424596  83 Linux

/dev/sda7      39645    53905  114551451  83 Linux

/dev/sda8      53906    59128  41953716  83 Linux

/dev/sda9      59129    59384   2056288+  b W95 FAT32

Command (m for help): q

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为了满足日益增长的数据处理需求,铁威马NAS推出了全新的性能巅峰2024年旗舰之作F4-424 Pro,并搭载了最新的操作系统--TOS 6。这款高效办公神器的问世,无疑将为企业和专业人士带来前所未有的便捷与效率。

关键字: 存储 Linux 服务器

双系统将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对双系统的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 双系统 Windows Linux

安装Linux操作系统并不复杂,下面是一个大致的步骤指南,以帮助您完成安装。1. 下载Linux发行版:首先,您需要从Linux发行版官方网站下载最新的ISO镜像文件。

关键字: Linux 操作系统 ISO镜像

计算机是由一堆硬件组成的,为了有限的控制这些硬件资源,于是就有了操作系统的产生,操作系统是软件子系统的一部分,是硬件基础上的第一层软件。

关键字: Linux 操作系统 计算机

Linux操作系统是一套免费使用和自由传播的类Unix操作系统,通常被称为GNU/Linux。它是由林纳斯·托瓦兹在1991年首次发布的,并基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Lin...

关键字: Linux 操作系统

所谓进程间通信就是在不同进程之间传播或交换信息,它是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息;还可以让一个程序能够在同一时间里处理许多用户的需求。

关键字: Linux 进程通信 编程接口

串口通信作为一种最传统的通信方式,在工业自动化、通讯、控制等领域得到广泛使用。

关键字: Linux 串口通信 通讯

2023年11月16日: MikroElektronika(MIKROE) ,作为一家通过提供基于成熟标准的创新式硬软件产品来大幅缩短开发时间的嵌入式解决方案公司,今天宣布推出一款基于单线设备的软硬件开源解决方案Cli...

关键字: 嵌入式 Linux 操作系统

Linux是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布。它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CP...

关键字: Linux 操作系统

本文中,小编将对嵌入式予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 嵌入式 Linux
关闭
关闭