I had never configured a VM for Linux From Scratch before, so the first work was getting a guest machine I could use reliably. Once the Debian build host was reachable, I ran the host checks and began constructing the toolchain. That turned “build Linux from scratch” into a sequence of very specific packages and environment assumptions rather than one dramatic install step.
The sequence kept giving me feedback. Some commands produced the expected output; others exposed mistakes in package handling or tests that were not clean. I reached chroot and continued through package builds, but the surviving record stops in that middle stretch. I have kept the checks and corrections here because they show what I actually got through. A bootable finished LFS system would be a different claim, and this source does not make it.
Building the tools that build the system
The work moved through the cross-toolchain and temporary tools before entering chroot. That sequence made the boundaries visible: the host compiler helps establish the new environment, then the new environment becomes the place where later packages are built.
A Glibc sanity check showed the test binary using the expected dynamic interpreter and finding startup objects, headers, and libc inside the LFS tree. I then removed the temporary test files and accidentally repeated checks that needed them. The resulting missing-file messages were explained by that cleanup; they did not undo the earlier output.
Another interruption appeared after returning to the VM: the sources directory seemed to have vanished. The assistant identified an unmounted LFS filesystem, distinguishing the empty mount point from the actual build tree.
Inside chroot
I posted an (lfs chroot) prompt and checks for the user identity, essential account files, temporary directories, and mount-table link. Later output showed the temporary /tools directory removed and versions for Bash, GCC, Make, Python, and Perl.
The package sequence required corrections. I caught a skipped PCRE2 step and asked the assistant to use the uploaded LFS 13.0 source rather than substitute a different Bc version. The stated Bc version was 7.0.3, not 7.0.4.
The tests were not all green
The recorded Glibc summary included one failure alongside thousands of passes. A later GCC summary reported nine unexpected failures in gcc and four in libstdc++. The assistant advised continuing, but those messages should not be rewritten as a completely clean toolchain test run.
Subsequent output showed GCC 15.2.0 installed, then progress through packages including Ncurses, Sed, Psmisc, and Gettext. The final exchange returned to the question of which shell I was in after typing exit.
I had a usable VM and had reached package work inside chroot, along with several checks and corrections. Some results were not clean. The next milestone would have been to get through those failures before calling the build a bootable system.