MTD 파티션의 이름 지정 체계

MTD 파티션의 이름 지정 체계

다음 부팅 로그에 나열된 MTD 파티션의 명명 체계는 무엇입니까?

5 cmdlinepart partitions found on MTD device phys_mapped_flash
Creating 5 MTD partitions on "phys_mapped_flash":
0x00000000-0x00080000 : "bootloader" 
0x00080000-0x00680000 : "kernel"
0x00680000-0x01680000 : "rootfs" 
0x01680000-0x01780000 : "data"
0x01780000-0x017a0000 : "bootload-env"

특히 U-Boot 프롬프트의 명령에 대한 인수로 "rootfs" 파티션을 지정하는 데 사용되는 명명 체계가 무엇인지 물었습니다.

setenv bootargs 'root= ???????'

IMO, 지정해야 합니다루트 = 부팅 로그에 커널이 루트 장치가 무엇인지 알 수 없다고 표시되기 때문입니다.

VFS: Cannot open root device "<NULL>" or unknown-block(0,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

...시작 로그에는 다음 내용도 표시됩니다.

Kernel command line:  bootoctlinux 0x2a00200 mtdparts=phys_mapped_flash:512k(bootloader)ro,6M(kernel),16M(rootfs),1024k(data),128k(bootload-env) console=ttyS0,115200

참고: 루트 파일 시스템은 커널 ELF 파일(vmlinux64)의 포함된 섹션(.init.ramfs)에 gzip으로 압축된 cpio 아카이브로 저장되며 부팅 로그에는 RAM에 성공적으로 로드되었음을 나타냅니다.

Loading .init.ramfs @ 0xffffffff806ac000 (0x185ac7 bytes)

이는 플래시 저장소가 32MB에 불과한 임베디드 시스템입니다(Linux 커널 v2.6.21.7(배포: MIPS64용 Cavium-Octeon)).
U-Boot 1.1.1 (개발 버전, svn 버전: 176)

편집하다: 어떤 사람은 MTD1이라고 하고, 어떤 사람은 MTD2라고 하고, 어떤 사람은 /dev/MTD1이라고 하고, 어떤 사람은 /dev/mtd1이라고 하고, 어떤 사람은 MTDblock1이라고 하고, 어떤 사람은 mtdblock1이라고 하고, 어떤 사람은 mtdblock2라고 하고, 어떤 사람은 ubi.mtdblock1이라고 하고, 어떤 사람은 ubi:mtdblock1이라고 합니다. (왜 콜론이 있는 거죠?) 잠깐...
진실이 뭐예요? U-Boot 프롬프트나 부팅 로그에서 확인하는 방법은 무엇입니까?

답변1

root=/dev/mtdblock3또는 일부 UBI 옵션. 당신이 눈치 채지 못한 것은 다른 파일 시스템에 대한 다른 제안이 있다는 것입니다 :-). 이것이 /dev/mtd3트리 내 파일 시스템에 사용되는지 는 모르겠습니다 .

루트 파일 시스템이 블록 기반(비mtd 인식) 파일 시스템의 읽기 전용 인스턴스인 경우 /dev/mtdblock3.

루트 파일 시스템이 JFFS2의 인스턴스인 경우 /dev/mtdblock3.see를 사용하십시오.https://www.denx.de/wiki/DULG/RootFileSystemOnAJFFS2FileSystem 일반적으로 다른 파일 시스템의 몇 가지 예를 보려면 다음을 참조하세요.http://www.denx.de/wiki/publish/DULG/DULG-enbw_cmc.html#Section_9.5.(그러나 UBI는 이 섹션에서 언급되지 않습니다.)

rootfs가 UBI를 사용하는 경우 일부 UBI 옵션을 사용하십시오. 그러나 UBI에 대한 세부 정보는 표시되지 않았습니다. root=UBI 장치/볼륨을 사용하기 전에 UBI 장치/볼륨에 대한 일부 커널 시작 메시지가 있어야 합니다. 이봐:http://www.linux-mtd.infradead.org/faq/ubifs.html#L_mount_ubifs UBI 옵션의 예를 제공합니다 ubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs. mtd 파티션이 "rootfs"로 직접 호출되므로 UBI가 아닐 것으로 예상됩니다.

root=mtdblock3적어도 확실하지 않은 경우에는 이 형식을 사용하지 않을 것입니다 . 차이점은 일부 initramfs가 이를 지원하지 않을 수 있다는 것입니다. 그러나 root=/dev/mtdblock3커널을 사용하여 루트 파일 시스템을 마운트하고 initramfs를 사용하지 않으면 커널이 이 형식을 이해합니다.

관련 정보