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>