summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2012-03-07 18:11:08 +0000
committerRichard W.M. Jones <rjones@redhat.com>2012-03-07 18:36:47 +0000
commitcfa0f9b381b5e3639e41554e78fcd38d611ef270 (patch)
treef86523565d9b9b16f2d26f3ad5eeea8dc85cd154 /src
parenta9510b7b22663ac27c8d59cee1bbd777468e1cac (diff)
downloadlibguestfs-cfa0f9b381b5e3639e41554e78fcd38d611ef270.tar.gz
libguestfs-cfa0f9b381b5e3639e41554e78fcd38d611ef270.tar.xz
libguestfs-cfa0f9b381b5e3639e41554e78fcd38d611ef270.zip
inspection: Add detection of FreeDOS install CDs (RHBZ#786188).
Diffstat (limited to 'src')
-rw-r--r--src/inspect_fs.c3
-rw-r--r--src/inspect_fs_cd.c12
2 files changed, 13 insertions, 2 deletions
diff --git a/src/inspect_fs.c b/src/inspect_fs.c
index b1dd4f66..7e6ff655 100644
--- a/src/inspect_fs.c
+++ b/src/inspect_fs.c
@@ -284,7 +284,8 @@ check_filesystem (guestfs_h *g, const char *device,
guestfs_is_dir (g, "/.disk") > 0 ||
guestfs_is_file (g, "/.discinfo") > 0 ||
guestfs_is_file (g, "/i386/txtsetup.sif") > 0 ||
- guestfs_is_file (g, "/amd64/txtsetup.sif")) > 0) {
+ guestfs_is_file (g, "/amd64/txtsetup.sif") > 0 ||
+ guestfs_is_file (g, "/freedos/freedos.ico") > 0)) {
fs->is_root = 1;
fs->content = FS_CONTENT_INSTALLER;
fs->format = OS_FORMAT_INSTALLER;
diff --git a/src/inspect_fs_cd.c b/src/inspect_fs_cd.c
index 97aa3b91..df0e6bb4 100644
--- a/src/inspect_fs_cd.c
+++ b/src/inspect_fs_cd.c
@@ -376,7 +376,17 @@ guestfs___check_installer_root (guestfs_h *g, struct inspect_fs *fs)
return -1;
}
- /* Linux with /isolinux/isolinux.cfg. */
+ /* FreeDOS install CD. */
+ else if (guestfs_is_file (g, "/freedos/freedos.ico") > 0 &&
+ guestfs_is_file (g, "/setup.bat") > 0) {
+ fs->type = OS_TYPE_DOS;
+ fs->distro = OS_DISTRO_FREEDOS;
+ fs->arch = safe_strdup (g, "i386");
+ }
+
+ /* Linux with /isolinux/isolinux.cfg (note that non-Linux can use
+ * ISOLINUX too, eg. FreeDOS).
+ */
else if (guestfs_is_file (g, "/isolinux/isolinux.cfg") > 0) {
if (check_isolinux_installer_root (g, fs) == -1)
return -1;