Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: current snapshot cannot mount / from CD
> > boot device cd0
> > root on cd0a dumps on cd0b
> > vfs_mountroot: can't open root device
> > cannot mount root, error = 6
> > root device (default cd0a):
>
> Oh, I've seen this before. What happens if you tell it cd0d?
I'm afraid dev/scsipi/cd.c and kern/subr_disk_mbr.c are messy...
---
static void
cdgetdefaultlabel(struct cd_softc *cd, struct cd_formatted_toc *toc,
struct disklabel *lp)
{
:
lp->d_partitions[0].p_offset = 0;
lp->d_partitions[0].p_size = lp->d_secperunit;
lp->d_partitions[0].p_cdsession = lastsession;
lp->d_partitions[0].p_fstype = FS_ISO9660;
lp->d_partitions[RAW_PART].p_offset = 0;
lp->d_partitions[RAW_PART].p_size = lp->d_secperunit;
lp->d_partitions[RAW_PART].p_fstype = FS_UDF;
---
static int
scan_iso_vrs(mbr_args_t *a)
{
:
/* add iso9660 partition if found */
if (is_iso9660 >= 0) {
/* set 'a' partition to iso9660 */
a->lp->d_partitions[0].p_offset = 0;
a->lp->d_partitions[0].p_size = a->lp->d_secperunit;
a->lp->d_partitions[0].p_cdsession = is_iso9660;
a->lp->d_partitions[0].p_fstype = FS_ISO9660;
} else {
a->lp->d_partitions[0].p_size = 0;
a->lp->d_partitions[0].p_fstype = FS_UNUSED;
}
/* add udf partition if found */
if (is_udf >= 0) {
/* set the RAW partition to UDF for CD/USB stick etc */
a->lp->d_partitions[RAW_PART].p_fstype = FS_UDF;
/* UDF doesn't care about the cd session specified here */
}
---
Home |
Main Index |
Thread Index |
Old Index