Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Mar 2012 12:41:17 GMT
From:      Daniel Berrange <berrange@redhat.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/165876: RFE: provide unique ISO9660 metadata for all release CD/DVD ISOs
Message-ID:  <201203091241.q29CfHaW055783@red.freebsd.org>
Resent-Message-ID: <201203091250.q29CoBpC058409@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         165876
>Category:       misc
>Synopsis:       RFE: provide unique ISO9660 metadata for all release CD/DVD ISOs
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Mar 09 12:50:11 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Daniel Berrange
>Release:        8.2 (applies to all previously built release ISOs too)
>Organization:
Red Hat
>Environment:
N/a
>Description:
I work on a project called libosinfo[1] that is aiming to be a core component of many virtualization management applications. In essence it is a database of metadata about operating systems, to facilitate their automatic installation in virtual machines. As well as recording supported hardware drivers, one of the goals is to be able to identify what operating system an arbitrary ISO image corresponds to, and whether the ISO image is a "live cd" or an "install cd". For this purpose we primarily use the ISO9660 metadata stored in the Primary Volume Descriptor.

For most operating systems this contains sufficiently unique data about the ISO image. eg the 'Volume id' field is sufficient to uniquely distinguish any Fedora ISO image [2]

  $ isoinfo -d -i fedora/11/Fedora-11-i386-DVD.iso
  CD-ROM is in ISO 9660 format
  System id: LINUX
  Volume id: Fedora 11 i386 DVD
  Volume set id:
  Publisher id:
  Data preparer id:
  Application id: GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C) 1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM

  $ isoinfo -d -i fedora/11/Fedora-11-i686-Live.iso
  CD-ROM is in ISO 9660 format
  System id: LINUX
  Volume id: Fedora-11-i686-Live
  Volume set id:
  Publisher id:
  Data preparer id:
  Application id: GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C) 1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM



  $ osinfo-detect Fedora-11-i386-DVD.iso
  Media is bootable.
  Media is an installer for OS 'Fedora 11'

  $ osinfo-detect Fedora-11-i686-Live.iso
  Media is bootable.
  Media is an installer for OS 'Fedora 11'
  Media is live media for OS 'Fedora 11'


Since our goal is to support basically every OS in existance, I would like to make this work for FreeBSD ISO images too. Historically though, FreeBSD release ISOs do not have sufficient unique metadata in the ISO9660 headers

  $ isoinfo -d -i freebsd/8.2/FreeBSD-8.2-RELEASE-amd64-disc1.iso
  CD-ROM is in ISO 9660 format
  System id: FreeBSD
  Volume id: FreeBSD_Install
  Volume set id:
  Publisher id: The FreeBSD Project.  http://www.freebsd.org/
  Data preparer id:
  Application id: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING

  $ isoinfo -d -i freebsd/8.2/FreeBSD-8.2-RELEASE-i386-bootonly.iso
  CD-ROM is in ISO 9660 format
  System id: FreeBSD
  Volume id: FreeBSD_bootonly
  Volume set id:
  Publisher id: The FreeBSD Project.  http://www.freebsd.org/
  Data preparer id:
  Application id: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING

  $ isoinfo -d -i freebsd/8.2/FreeBSD-8.2-RELEASE-amd64-livefs.iso
  CD-ROM is in ISO 9660 format
  System id: FreeBSD
  Volume id: FreeBSD_LiveFS
  Volume set id:
  Publisher id: The FreeBSD Project.  http://www.freebsd.org/
  Data preparer id:
  Application id: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING

Most importantly they are missing the version number, and architecture. On the plus side we can distinguish live media from install media.

NB, also previously reported to  're@freebsd.org' mailing alias

[1] https://fedorahosted.org/libosinfo
[2] The <media> elements are where we record ISO signatures
     http://git.fedorahosted.org/git/?p=libosinfo.git;a=blob;f=data/oses/fedora.xml;hb=HEAD

>How-To-Repeat:
Run  'isoinfo -d -i ISOFILENAME' on every FreeBSD ISO image. Notice that the "Volume id" field is not unique amongst ISO images from different FreeBSD releases/arches.
>Fix:
It would be desirable if future FreeBSD releases write a 'Volume id' field string in all ISO images that contains:

 - Release version number
 - Machine architecture
 - Image type Live vs Boot vs Install
 - Image media  DVD vs CD

eg Perhaps something like

      FreeBSD_8.0-amd64-BootOnly
      FreeBSD_8.0-amd64-Install-CD
      FreeBSD_8.0-amd64-Install-DVD
      FreeBSD_8.0-amd64-LiveFS

If you ever produce multi-CD ISO sets, it would also be great if the 'Volume set size' and 'Volume set sequence number' fields are also set, to allow the automatic identification of ISO order. 

This data is specified to mkisofs / genisoimage using the '-V volumeid',  '-volset-size COUNT' and '-volset-seq NUM' args.


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203091241.q29CfHaW055783>