Esempio n. 1
0
/* ARGSUSED */
int
Xdisk(cmd_t *cmd, disk_t *disk, mbr_t *mbr, mbr_t *tt, int offset)
{
	int maxcyl  = 1024;
	int maxhead = 256;
	int maxsec  = 63;

	/* Print out disk info */
	DISK_printmetrics(disk, cmd->args);

#if defined (__powerpc__) || defined (__mips__)
	maxcyl  = 9999999;
	maxhead = 9999999;
	maxsec  = 9999999;
#endif

	/* Ask for new info */
	if (ask_yn("Change disk geometry?")) {
		disk->real->cylinders = ask_num("BIOS Cylinders",
		    disk->real->cylinders, 1, maxcyl);
		disk->real->heads = ask_num("BIOS Heads",
		    disk->real->heads, 1, maxhead);
		disk->real->sectors = ask_num("BIOS Sectors",
		    disk->real->sectors, 1, maxsec);

		disk->real->size = disk->real->cylinders * disk->real->heads
			* disk->real->sectors;
	}

	return (CMD_CONT);
}
Esempio n. 2
0
int
USER_print_disk(disk_t *disk)
{
	off_t offset, firstoff;
	int fd, i, error;
	char gpt_buf[DEV_BSIZE];
	gpt_t gpt;

	fd = DISK_open(disk->name, O_RDONLY);
	offset = firstoff = 1;

	DISK_printmetrics(disk, NULL);

	error = GPT_load(fd, disk, &gpt, 0);
	if (error == -1) {
		printf("Master header not clean, trying backup header\n");
		error = GPT_load(fd, disk, &gpt, 1);
	}
	if (error == -1) {
		printf("Backup header not clean, exiting.\n");
		return (close(fd));
	}

	printf("Offset: %lld\t", offset);
	GPT_print(&gpt, NULL);

	GPT_free(&gpt);

	return (close(fd));
}
Esempio n. 3
0
/* ARGSUSED */
int
Xprint(cmd_t *cmd, disk_t *disk, mbr_t *mbr, mbr_t *tt, int offset)
{

	DISK_printmetrics(disk, cmd->args);
	printf("Offset: %d\t", offset);
	MBR_print(mbr, cmd->args);

	return (CMD_CONT);
}