Die Partitionsinformationen liegen bei Atari-Platten im Rootsektor (dem physisch ersten Sektor des Mediums).
Von den 512 Bytes, die in diesem Sektor stehen, interessieren zunächst nur die ab Offset $1c2. Da steht - zumindest bei AHDI-kompatibler Formatierung - folgendes (hier als - gepacktes - C-struct):
struct partinfo
{
int32_t hd_siz; /* Anzahl der Partitionen auf der Platte */
char p0flg; /* Bit 0=1 -> Partition existiert */
/* Bit 1-6 -> reserviert (=0) */
/* Bit 7=1 -> Partition ist bootbar */
char p0_id[3]; /* Partitionskennung (GEM, BGM, LNX, ...) */
int32_t p0_st; /* Startsektor der Partition */
int32_t p0_siz; /* Größe der Partition in 512-Bytes-Sektoren */
char p1flg; /* dasselbe für die drei anderen primären Partitionen */
char p1_id[3];
int32_t p1_st;
int32_t p1_siz;
char p2flg;
char p2_id[3];
int32_t p2_st;
int32_t p2_siz;
char p3flg;
char p3_id[3];
int32_t p3_st;
int32_t p3_siz;
int32_t bsl_st; /* start der Defektliste */
int32_t bsl_cnt; /* Größe der Defektliste */
int16_t cksum; /* Prüfsumme */
};
Wenn Du dich auf primäre Partitionen (die ersten vier) beschränkst (mit erweiterten Partitionen würde es deutlich komplizierter), mußt Du also "nur" in das entsprechende Feld "px_id" "LNX" reinschreiben, die Prüfsumme neu berechnen (muß $1234 sein) und die fünf Bytes an die richtige Stelle auf die Platte schreiben (Rwabs()).
(für zerschossene Platten übernehme ich keine Haftung
)