Index: uspace/app/sysinst/futil.c
===================================================================
--- uspace/app/sysinst/futil.c	(revision 9b95b96426d1b1a1de063da2fa2299b5c025dd14)
+++ 	(revision )
@@ -1,201 +1,0 @@
-/*
- * Copyright (c) 2014 Jiri Svoboda
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup sysinst
- * @{
- */
-/** @file File manipulation utility functions for installer
- */
-
-#include <dirent.h>
-#include <errno.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <vfs/vfs.h>
-#include <dirent.h>
-
-#include "futil.h"
-
-#define BUF_SIZE 16384
-static char buf[BUF_SIZE];
-
-/** Copy file.
- *
- * @param srcp Source path
- * @param dstp Destination path
- *
- * @return EOK on success, EIO on I/O error
- */
-errno_t futil_copy_file(const char *srcp, const char *destp)
-{
-	int sf, df;
-	size_t nr, nw;
-	errno_t rc;
-	aoff64_t posr = 0, posw = 0;
-
-	printf("Copy '%s' to '%s'.\n", srcp, destp);
-
-	rc = vfs_lookup_open(srcp, WALK_REGULAR, MODE_READ, &sf);
-	if (rc != EOK)
-		return EIO;
-
-	rc = vfs_lookup_open(destp, WALK_REGULAR | WALK_MAY_CREATE, MODE_WRITE, &df);
-	if (rc != EOK)
-		return EIO;
-
-	do {
-		rc = vfs_read(sf, &posr, buf, BUF_SIZE, &nr);
-		if (rc != EOK)
-			goto error;
-		if (nr == 0)
-			break;
-
-		rc = vfs_write(df, &posw, buf, nr, &nw);
-		if (rc != EOK)
-			goto error;
-
-	} while (nr == BUF_SIZE);
-
-	(void) vfs_put(sf);
-
-	rc = vfs_put(df);
-	if (rc != EOK)
-		return EIO;
-
-	return EOK;
-error:
-	vfs_put(sf);
-	vfs_put(df);
-	return rc;
-}
-
-/** Copy contents of srcdir (recursively) into destdir.
- *
- * @param srcdir Source directory
- * @param destdir Destination directory
- *
- * @return EOK on success, ENOMEM if out of memory, EIO on I/O error
- */
-errno_t futil_rcopy_contents(const char *srcdir, const char *destdir)
-{
-	DIR *dir;
-	struct dirent *de;
-	vfs_stat_t s;
-	char *srcp, *destp;
-	errno_t rc;
-
-	dir = opendir(srcdir);
-	if (dir == NULL)
-		return EIO;
-
-	de = readdir(dir);
-	while (de != NULL) {
-		if (asprintf(&srcp, "%s/%s", srcdir, de->d_name) < 0)
-			return ENOMEM;
-		if (asprintf(&destp, "%s/%s", destdir, de->d_name) < 0)
-			return ENOMEM;
-
-		rc = vfs_stat_path(srcp, &s);
-		if (rc != EOK)
-			return EIO;
-
-		if (s.is_file) {
-			rc = futil_copy_file(srcp, destp);
-			if (rc != EOK)
-				return EIO;
-		} else if (s.is_directory) {
-			printf("Create directory '%s'\n", destp);
-			rc = vfs_link_path(destp, KIND_DIRECTORY, NULL);
-			if (rc != EOK)
-				return EIO;
-			rc = futil_rcopy_contents(srcp, destp);
-			if (rc != EOK)
-				return EIO;
-		} else {
-			return EIO;
-		}
-
-		de = readdir(dir);
-	}
-
-	return EOK;
-}
-
-/** Return file contents as a heap-allocated block of bytes.
- *
- * @param srcp File path
- * @param rdata Place to store pointer to data
- * @param rsize Place to store size of data
- *
- * @return EOK on success, ENOENT if failed to open file, EIO on other
- *         I/O error, ENOMEM if out of memory
- */
-errno_t futil_get_file(const char *srcp, void **rdata, size_t *rsize)
-{
-	int sf;
-	size_t nr;
-	errno_t rc;
-	size_t fsize;
-	char *data;
-	vfs_stat_t st;
-
-	rc = vfs_lookup_open(srcp, WALK_REGULAR, MODE_READ, &sf);
-	if (rc != EOK)
-		return ENOENT;
-
-	if (vfs_stat(sf, &st) != EOK) {
-		vfs_put(sf);
-		return EIO;
-	}
-
-	fsize = st.size;
-
-	data = calloc(fsize, 1);
-	if (data == NULL) {
-		vfs_put(sf);
-		return ENOMEM;
-	}
-
-	rc = vfs_read(sf, (aoff64_t []) { 0 }, data, fsize, &nr);
-	if (rc != EOK || nr != fsize) {
-		vfs_put(sf);
-		free(data);
-		return EIO;
-	}
-
-	(void) vfs_put(sf);
-	*rdata = data;
-	*rsize = fsize;
-
-	return EOK;
-}
-
-/** @}
- */
Index: uspace/app/sysinst/futil.h
===================================================================
--- uspace/app/sysinst/futil.h	(revision 9b95b96426d1b1a1de063da2fa2299b5c025dd14)
+++ 	(revision )
@@ -1,50 +1,0 @@
-/*
- * Copyright (c) 2014 Jiri Svoboda
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup sysinst
- * @{
- */
-/**
- * @file
- * @brief
- */
-
-#ifndef FUTIL_H
-#define FUTIL_H
-
-#include <ipc/loc.h>
-#include <stddef.h>
-
-extern errno_t futil_copy_file(const char *, const char *);
-extern errno_t futil_rcopy_contents(const char *, const char *);
-extern errno_t futil_get_file(const char *, void **, size_t *);
-
-#endif
-
-/** @}
- */
Index: uspace/app/sysinst/meson.build
===================================================================
--- uspace/app/sysinst/meson.build	(revision 9b95b96426d1b1a1de063da2fa2299b5c025dd14)
+++ uspace/app/sysinst/meson.build	(revision ddfe233f65f4a86f6e6b48ef5065323f0f82c1d2)
@@ -27,7 +27,6 @@
 #
 
-deps = [ 'block', 'fdisk', 'sif' ]
+deps = [ 'block', 'fdisk', 'futil', 'sif' ]
 src = files(
-	'futil.c',
 	'rdimg.c',
 	'sysinst.c',
Index: uspace/app/sysinst/sysinst.c
===================================================================
--- uspace/app/sysinst/sysinst.c	(revision 9b95b96426d1b1a1de063da2fa2299b5c025dd14)
+++ uspace/app/sysinst/sysinst.c	(revision ddfe233f65f4a86f6e6b48ef5065323f0f82c1d2)
@@ -41,4 +41,5 @@
 #include <errno.h>
 #include <fdisk.h>
+#include <futil.h>
 #include <loc.h>
 #include <stdio.h>
@@ -49,5 +50,4 @@
 #include <vol.h>
 
-#include "futil.h"
 #include "grub.h"
 #include "rdimg.h"
@@ -80,4 +80,7 @@
 #define BOOT_BLOCK_IDX 0 /* MBR */
 
+#define CFG_FILES_SRC "/cfg"
+#define CFG_FILES_DEST MOUNT_POINT "/cfg"
+
 static const char *default_devs[] = {
 	DEFAULT_DEV_0,
@@ -226,4 +229,9 @@
 	free(path);
 	path = NULL;
+
+	/* Copy initial configuration files */
+	rc = futil_rcopy_contents(CFG_FILES_SRC, CFG_FILES_DEST);
+	if (rc != EOK)
+		return rc;
 
 	return EOK;
