From owner-freebsd-questions@freebsd.org Wed Oct 4 11:14:28 2017 Return-Path: Delivered-To: freebsd-questions@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C29FBE36457 for ; Wed, 4 Oct 2017 11:14:28 +0000 (UTC) (envelope-from freebsd@edvax.de) Received: from mailrelay15.qsc.de (mailrelay15.qsc.de [212.99.187.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.antispameurope.com", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4E64A81950 for ; Wed, 4 Oct 2017 11:14:27 +0000 (UTC) (envelope-from freebsd@edvax.de) Received: from mx01.qsc.de ([213.148.129.14]) by mailrelay15.qsc.de; Wed, 04 Oct 2017 13:14:18 +0200 Received: from r56.edvax.de (port-92-195-63-92.dynamic.qsc.de [92.195.63.92]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx01.qsc.de (Postfix) with ESMTPS id E04943CBF9; Wed, 4 Oct 2017 13:14:17 +0200 (CEST) Received: from r56.edvax.de (localhost [127.0.0.1]) by r56.edvax.de (8.14.5/8.14.5) with SMTP id v94BEHK4004417; Wed, 4 Oct 2017 13:14:17 +0200 (CEST) (envelope-from freebsd@edvax.de) Date: Wed, 4 Oct 2017 13:14:17 +0200 From: Polytropon To: Johan Hendriks Cc: freebsd-questions@freebsd.org Subject: Re: Edit the qcow2 FreeBSD image file Message-Id: <20171004131417.4bfbaacb.freebsd@edvax.de> In-Reply-To: References: <20171004112931.bb6524b9.freebsd@edvax.de> <20171004120949.24b4cd25.freebsd@edvax.de> Reply-To: Polytropon Organization: EDVAX X-Mailer: Sylpheed 3.1.1 (GTK+ 2.24.5; i386-portbld-freebsd8.2) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-cloud-security-sender: freebsd@edvax.de X-cloud-security-recipient: freebsd-questions@freebsd.org X-cloud-security-Virusscan: CLEAN X-cloud-security-disclaimer: This E-Mail was scanned by E-Mailservice on mailrelay15.qsc.de with 3638968350B X-cloud-security-connect: mx01.qsc.de[213.148.129.14], TLS=1, IP=213.148.129.14 X-cloud-security: scantime:.1614 X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Oct 2017 11:14:28 -0000 On Wed, 4 Oct 2017 12:41:46 +0200, Johan Hendriks wrote: >=20 >=20 > Op 04/10/2017 om 12:09 schreef Polytropon: > > On Wed, 4 Oct 2017 12:02:56 +0200, Johan Hendriks wrote: > >> > >> Op 04/10/2017 om 11:29 schreef Polytropon: > >>> On Wed, 4 Oct 2017 09:47:47 +0200, Johan Hendriks wrote: > >>>> I want to add a script to the default qcow2 file of the FreeBSD qcow= 2 image. > >>>> But how do i mount the qcow2 file on FreeBSD? > >>>> There are a lot of howto's how to do it on Linux but i do not always > >>>> have a Linux box ready. > >>> Without having verified, I'd say something like this will work: > >>> > >>> # mdconfig -a -t vnode -f -u 0 > >>> # mount -t ufs -o rw /dev/md0s1a /mnt > >>> > >>> The key is to connect the file to a md device ("memory disk"), > >>> and then use it as if it was a real disk. But always check the > >>> correct device file name - md0 will reflect the "disk layout" > >>> of the image file, so maybe you need to use /dev/md0p1 or > >>> /dev/md0a or simply /dev/md0, so check "ls /dev/md0*" to see > >>> how the layout is being translated to device files - this > >>> depends on the layout that has been constructed within the > >>> image file. > >>> > >>> When you're done, use: > >>> > >>> # umount /mnt > >>> # mdconfig -d -u 0 > >>> > >>> This will finally sync any changes and disconnect the device. > >>> The image file can be used now. > >>> > >> Thanks, I tried that, but it does not work. > >> root@desk:~ # mdconfig -a -t vnode -f FreeBSD-11.1-RELEASE-amd64.qcow2= -u 0 > >> > >> Then a ls of /dev/md0 only shows md0 and i can not mount that one. > >> root@desk:~ # ls -al /dev/md* > >> crw-r-----=A0 1 root=A0 operator=A0 0x8c Oct=A0 4 11:48 /dev/md0 > >> crw-------=A0 1 root=A0 wheel=A0=A0=A0=A0=A0 0xb Sep 21 14:16 /dev/mdc= tl > >> > >> And a mount of /dev/md0 gives an error. > >> > >> root@desk:~ # mount -t ufs -o rw /dev/md0 /mnt > >> mount: /dev/md0: Invalid argument > > Check the file format of md0 if it is recognized as a filesystem > > image: > > > > # file FreeBSD-11.1-RELEASE-amd64.qcow2 > > # file -s /dev/md0 > > > > it should be recognized as a UFS file system (typically called > > "Unix Fast File system [v2]"). Note that you can only mount a > > file system which is being recognized correctly. > > > Indeed it is not recognized as a regular filesystem. > root@desk:~ # file FreeBSD-11.1-RELEASE-amd64.qcow2 > FreeBSD-11.1-RELEASE-amd64.qcow2: QEMU QCOW Image (v2), 22548643840 bytes > root@desk:~ # file -s /dev/md0 > /dev/md0: QEMU QCOW Image (v2), 22548643840 bytes This shows that the file is _not_ a file system image (that FreeBSD can understand natively). > Well I installed the qemu-tools port and created a .raw file. > This way i can mount the file with mdconfig like you discribed. >=20 > root@desk:~ #=A0 qemu-img convert FreeBSD-11.1-RELEASE-amd64.qcow2 > FreeBSD-11.1-RELEASE-amd64.raw > root@desk:~ # mdconfig -d -u 0 > root@desk:~ # mdconfig -a -t vnode -f FreeBSD-11.1-RELEASE-amd64.raw -u 0 > root@desk:~ # ls /dev/md0* > /dev/md0=A0=A0=A0 /dev/md0p1=A0=A0=A0 /dev/md0p2=A0=A0=A0 /dev/md0p3 So there are three GPT partitions inside that image, and with the raw file connected to the memory disk device, they are represented as individual files, just as intended. > root@desk:~ # mount /dev/md0p3 /mnt > root@desk:~ # cd /mnt > root@desk:/mnt # ls -al > total 121 > drwxr-xr-x=A0 19 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:33 . > drwxr-xr-x=A0 31 root=A0 wheel=A0=A0=A0=A0=A0=A0 39 Sep 21 14:16 .. > -rw-r--r--=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 957 Jul 21 04:33 .cshrc > -rw-r--r--=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 249 Jul 21 04:33 .profile > drwxrwxr-x=A0=A0 2 root=A0 operator=A0=A0 512 Jul 21 04:30 .snap > -r--r--r--=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 6199 Jul 21 04:33 COPYRIGHT > drwxr-xr-x=A0=A0 2 root=A0 wheel=A0=A0=A0=A0 1024 Jul 21 04:31 bin > drwxr-xr-x=A0=A0 8 root=A0 wheel=A0=A0=A0=A0 1024 Jul 21 04:33 boot > dr-xr-xr-x=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:30 dev > drwxr-xr-x=A0 27 root=A0 wheel=A0=A0=A0=A0 2048 Jul 21 04:33 etc > drwxr-xr-x=A0=A0 4 root=A0 wheel=A0=A0=A0=A0 1536 Jul 21 04:31 lib > drwxr-xr-x=A0=A0 3 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:33 libexec > drwxr-xr-x=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:30 media > drwxr-xr-x=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:30 mnt > drwxr-xr-x=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:30 net > dr-xr-xr-x=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:30 proc > drwxr-xr-x=A0=A0 2 root=A0 wheel=A0=A0=A0=A0 2560 Jul 21 04:31 rescue > drwxr-xr-x=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:33 root > drwxr-xr-x=A0=A0 2 root=A0 wheel=A0=A0=A0=A0 2560 Jul 21 04:32 sbin > lrwxr-xr-x=A0=A0 1 root=A0 wheel=A0=A0=A0=A0=A0=A0 11 Jul 21 04:30 sys ->= usr/src/sys > drwxrwxrwt=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:30 tmp > drwxr-xr-x=A0 14 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:30 usr > drwxr-xr-x=A0 24 root=A0 wheel=A0=A0=A0=A0=A0 512 Jul 21 04:30 var Excellent! --=20 Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ...