Sysgen neither copies nor doesn't copy any specific components. Basically,
the DR standard Sysgen for CP/M 2.2 copies the contents of the first two
tracks (52 sectors of 128-bytes each) to and from a buffer at 900H. It
doesn't know or care what components are present in those tracks, it just
does a blind copy: 52 sectors (128 bytes per sector, two tracks of 26
sectors each) to and from memory at address 900 hex. [This address was
different [lower] in some earlier versions of CP/M].
Now that was the standard Digital Research SYSGEN. If you are dealing with
an OEM system or any system that used any flavor of 5.25" media, then all
bets are off. In such systems the entire methodology for system generation,
booting and copying the boot code were entirely up to the OEM and could be
extremely different from the DR standard (which was both simplistic and
quite restrictive).
On my own implementations for the Z-100, I put the OS and the BIOS onto the
data area as files OS.SYS and BIOS.SYS (which did not have to be either
contiguous or located in special areas). (For MP/M-86, the OS consisted of
about a half-dozen different modules.) What I put into the system tracks
was an OS loader program that could actually read files using the directory
and FCBs. And for writing and copying that, I created a program called
"WRITLDR" (write loader). The loader had a CP/M-like boot sector and bios
of it's own, but since the loader itself was relatively small, the loader's
bios could be relatively huge, allowing for the complexity required to deal
with systems with a large number of bootable disk formats.