Olhando para a origem do vzctl, descobri como isso funciona. Na verdade, ele deriva o nome do nome do modelo. Ao iniciar o VE, em algum momento, um método em lib/dist.c
é chamado:
static int get_dist_conf_name(char *dist_name, char *dir, char *file, int len)
{
char buf[256];
char *ep;
if (dist_name != NULL) {
snprintf(buf, sizeof(buf), "%s", dist_name);
ep = buf + strlen(buf);
do {
snprintf(file, len, "%s/%s.conf", dir, buf);
if (stat_file(file))
return 0;
while (ep > buf && *ep != '-') --ep;
*ep = 0;
} while (ep > buf);
[...]
}
Lá, ele remove as partes delimitadas pelo traço do final do nome, sempre procurando uma correspondência. O modelo que eu estava olhando é arch-2010.05-x86_64-minimal
, então aqui ele tenta primeiro arch-2010.05-x86_64-minimal.conf
, então arch-2010.05-x86_64.conf
, então arch-2010.05.conf
, até finalmente encontrar um arquivo chamado arch.conf
contendo os ponteiros dos scripts para atualizar a configuração do Arch arquivos.