diff --git a/inspector/expected-coreos.img.xml b/inspector/expected-coreos.img.xml
index 723a853c4..c819a0521 100644
--- a/inspector/expected-coreos.img.xml
+++ b/inspector/expected-coreos.img.xml
@@ -4,9 +4,9 @@
/dev/sda5
linux
coreos
- CoreOS 647.0.0
- 647
- 0
+ CoreOS 899.13.0
+ 899
+ 13
coreos.invalid
installed
diff --git a/src/inspect-fs-unix.c b/src/inspect-fs-unix.c
index 35181d6df..dab43701c 100644
--- a/src/inspect-fs-unix.c
+++ b/src/inspect-fs-unix.c
@@ -196,6 +196,8 @@ parse_os_release (guestfs_h *g, struct inspect_fs *fs, const char *filename)
distro = OS_DISTRO_ARCHLINUX;
else if (VALUE_IS ("centos"))
distro = OS_DISTRO_CENTOS;
+ else if (VALUE_IS ("coreos"))
+ distro = OS_DISTRO_COREOS;
else if (VALUE_IS ("debian"))
distro = OS_DISTRO_DEBIAN;
else if (VALUE_IS ("fedora"))
@@ -1055,6 +1057,16 @@ guestfs_int_check_coreos_usr (guestfs_h *g, struct inspect_fs *fs)
fs->type = OS_TYPE_LINUX;
fs->distro = OS_DISTRO_COREOS;
+
+ if (guestfs_is_file_opts (g, "/lib/os-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ r = parse_os_release (g, fs, "/lib/os-release");
+ if (r == -1) /* error */
+ return -1;
+ if (r == 1) /* ok - detected the release from this file */
+ goto skip_release_checks;
+ }
+
if (guestfs_is_file_opts (g, "/share/coreos/lsb-release",
GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
r = parse_lsb_release (g, fs, "/share/coreos/lsb-release");
@@ -1062,6 +1074,8 @@ guestfs_int_check_coreos_usr (guestfs_h *g, struct inspect_fs *fs)
return -1;
}
+ skip_release_checks:;
+
/* Determine the architecture. */
check_architecture (g, fs);
diff --git a/test-data/phony-guests/make-coreos-img.sh b/test-data/phony-guests/make-coreos-img.sh
index 1de2f251f..658ea44a6 100755
--- a/test-data/phony-guests/make-coreos-img.sh
+++ b/test-data/phony-guests/make-coreos-img.sh
@@ -21,12 +21,17 @@
export LANG=C
set -e
-# lsb-release file.
-cat > archlinux.release <<'EOF'
-DISTRIB_ID=CoreOS
-DISTRIB_RELEASE=647.0.0
-DISTRIB_CODENAME="Red Dog"
-DISTRIB_DESCRIPTION="CoreOS 647.0.0"
+# os-release file.
+cat > coreos.release <<'EOF'
+NAME=CoreOS
+ID=coreos
+VERSION=899.13.0
+VERSION_ID=899.13.0
+BUILD_ID=2016-03-23-0120
+PRETTY_NAME="CoreOS 899.13.0"
+ANSI_COLOR="1;32"
+HOME_URL="https://coreos.com/"
+BUG_REPORT_URL="https://github.com/coreos/bugs/issues"
EOF
# Create a disk image.
@@ -69,15 +74,16 @@ mkdir-p /usr/share/coreos/
ln-s usr/bin /bin
ln-s usr/lib64 /lib64
ln-s lib64 /lib
+ln-s lib64 /usr/lib
mkdir /root
mkdir /home
write /etc/coreos/update.conf "GROUP=stable"
-upload archlinux.release /usr/share/coreos/lsb-release
-ln-s ../usr/share/coreos/lsb-release /etc/lsb-release
+upload coreos.release /usr/lib/os-release
+ln-s ../usr/lib/os-release /etc/os-release
write /etc/hostname "coreos.invalid"
EOF
-rm archlinux.release
+rm coreos.release
mv coreos.img-t coreos.img