Warum kann Embedded Linux (yocto) nicht den gesamten Speicher der rootfs-Partition verwenden?

775
Semant1ka

Ich habe ein Linux-Image mit yocto erstellt und auf dem IMX6qpsabreauto-Board bereitgestellt.

Das Dateisystem wurde auf einer zweiten, mit ext4 formatierten Partition der SD-Karte bereitgestellt.

Alles scheint gut zu funktionieren, abgesehen davon, dass ich 15 GB Partitionen für rootfs und das System habe, die nur etwa 1 GB verwenden und der Speicherplatz knapp ist.

Ich kann nicht sehen warum. Imx6 scheint den gesamten Speicher auf der Partition zu sehen.

root@imx6qpsabreauto:~# fdisk -l  Disk /dev/mmcblk2: 15.9 GB, 15931539456 bytes 4 heads, 16 sectors/track, 486192 cylinders Units = cylinders of 64 * 512 = 32768 bytes  Device Boot Start End Blocks Id System /dev/mmcblk2p1 33 15296 488448 c Win95 FAT32 (LBA) Partition 1 does not end on cylinder boundary /dev/mmcblk2p2 15297 486192 15068672 83 Linux Partition 2 does not end on cylinder boundary  root@imx6qpsabreauto:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 976.6M 906.5M 384.0K 100% / devtmpfs 847.3M 0 847.3M 0% /dev tmpfs 1007.7M 172.0K 1007.5M 0% /run tmpfs 1007.7M 240.0K 1007.4M 0% /var/volatile  root@imx6qpsabreauto:~# cat /etc/mtab  /dev/root / ext4 rw,relatime,data=ordered 0 0 devtmpfs /dev devtmpfs rw,relatime,size=867636k,nr_inodes=216909,mode=755 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 debugfs /sys/kernel/debug debugfs rw,relatime 0 0 tmpfs /run tmpfs rw,nosuid,nodev,mode=755 0 0 tmpfs /var/volatile tmpfs rw,relatime 0 0 devpts /dev/pts devpts rw,relatime,gid=5,mode=620 0 0 

UPD: Das Problem war, dass ich das gesamte Image kopiert habe, aber es war besser, nur Dateien aus dem Image zu kopieren

 mkdir ~/mnt mkdir ~/mnt/target mkdir ~/mnt/yocto sudo mount /dev/sdf2 ~/mnt/target/ sudo mount -o loop tmp/deploy/images/imx6qpsabreauto/fsl-image-machine-test-imx6qpsabreauto.ext4 ~/mnt/yocto/ sudo cp -a ~/mnt/yocto/* ~/mnt/target sudo umount ~/mnt/target sudo umount ~/mnt/yocto 
0

1 Antwort auf die Frage

1
stathisv

Wie haben Sie die rootfs auf der SD-Karte bereitgestellt? War es ein EXT4-Bild, auf das Sie kopiert haben /dev/mmcblkp2?

Die SD-Kartenpartition ist 15 GB groß, aber das eigentliche EXT4-Dateisystem-Image, das Sie darauf kopiert haben, beträgt nur 1 GB.

Ich habe ein Dateisystem-Image mit yocto erstellt und es mit dd-Dienstprogramm wie diesem kopiert. Sudo dd if = fsl-image-gui-imx6qsabresd.ext4 von = / dev / sdd2 bs = 1M Als dd fertig war, schrieb er, dass er 1,1 GB kopiert habe. Ist also das Problem, dass ich das Dateisystem nach der Bereitstellung erweitern muss, damit die gesamte Partition gefüllt wird? Semant1ka vor 6 Jahren 0
Stimmt. Ihr Dateisystem ist nur 1 GB groß. Erstellt Yocto auch ein gezipptes tar-Archiv des Dateisystems? Sie können ein leeres EXT4-Dateisystem in / dev / mmcblkp2 erstellen, indem Sie mkfs.ext4 verwenden, das die gesamte Partition abdeckt, es anhängen und das dortige Yocto-Dateisystem entpacken. stathisv vor 6 Jahren 0
Vielen Dank für Ihren Rat. Das Kopieren von Dateien löste das Problem. Semant1ka vor 6 Jahren 0