Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Oct 2017 12:41:46 +0200
From:      Johan Hendriks <joh.hendriks@gmail.com>
To:        Polytropon <freebsd@edvax.de>, freebsd-questions@freebsd.org
Subject:   Re: Edit the qcow2 FreeBSD image file
Message-ID:  <f739337b-e212-24f0-c66e-210461fd553c@gmail.com>
In-Reply-To: <20171004120949.24b4cd25.freebsd@edvax.de>
References:  <dc133ebc-d931-6b9e-b989-bf8e69b2be81@gmail.com> <20171004112931.bb6524b9.freebsd@edvax.de> <bc0b02fb-e121-be41-e5ce-1b2d84958d1c@gmail.com> <20171004120949.24b4cd25.freebsd@edvax.de>

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


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 qcow2 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 <flename> -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-----  1 root  operator  0x8c Oct  4 11:48 /dev/md0
>> crw-------  1 root  wheel      0xb Sep 21 14:16 /dev/mdctl
>>
>> 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

Well I installed the qemu-tools port and created a .raw file.
This way i can mount the file with mdconfig like you discribed.

root@desk:~ #  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    /dev/md0p1    /dev/md0p2    /dev/md0p3
root@desk:~ # mount /dev/md0p3 /mnt
root@desk:~ # cd /mnt
root@desk:/mnt # ls -al
total 121
drwxr-xr-x  19 root  wheel      512 Jul 21 04:33 .
drwxr-xr-x  31 root  wheel       39 Sep 21 14:16 ..
-rw-r--r--   2 root  wheel      957 Jul 21 04:33 .cshrc
-rw-r--r--   2 root  wheel      249 Jul 21 04:33 .profile
drwxrwxr-x   2 root  operator   512 Jul 21 04:30 .snap
-r--r--r--   1 root  wheel     6199 Jul 21 04:33 COPYRIGHT
drwxr-xr-x   2 root  wheel     1024 Jul 21 04:31 bin
drwxr-xr-x   8 root  wheel     1024 Jul 21 04:33 boot
dr-xr-xr-x   2 root  wheel      512 Jul 21 04:30 dev
drwxr-xr-x  27 root  wheel     2048 Jul 21 04:33 etc
drwxr-xr-x   4 root  wheel     1536 Jul 21 04:31 lib
drwxr-xr-x   3 root  wheel      512 Jul 21 04:33 libexec
drwxr-xr-x   2 root  wheel      512 Jul 21 04:30 media
drwxr-xr-x   2 root  wheel      512 Jul 21 04:30 mnt
drwxr-xr-x   2 root  wheel      512 Jul 21 04:30 net
dr-xr-xr-x   2 root  wheel      512 Jul 21 04:30 proc
drwxr-xr-x   2 root  wheel     2560 Jul 21 04:31 rescue
drwxr-xr-x   2 root  wheel      512 Jul 21 04:33 root
drwxr-xr-x   2 root  wheel     2560 Jul 21 04:32 sbin
lrwxr-xr-x   1 root  wheel       11 Jul 21 04:30 sys -> usr/src/sys
drwxrwxrwt   2 root  wheel      512 Jul 21 04:30 tmp
drwxr-xr-x  14 root  wheel      512 Jul 21 04:30 usr
drwxr-xr-x  24 root  wheel      512 Jul 21 04:30 var


Thank you both for your time.
I can now do what i want.

regards,
Johan





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f739337b-e212-24f0-c66e-210461fd553c>