44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| layout: post
 | |
| title: "Mount a Zvol under linux"
 | |
| date: 2024-01-12
 | |
| comments: true
 | |
| tags: zfs, zvol, mount, kpartx, linux, nixos
 | |
| ---
 | |
| 
 | |
| Zvol are volumes backed by a zfs pool. They are quite popular as vm disk images. 
 | |
| 
 | |
| Sometimes you just want to examine them in the host; here is how to mount them.
 | |
| 
 | |
| When the pool is imported, they show up under `/dev/zvol/<path to zvol
 | |
| dataset>`. At this point they are just raw drives, and kernel knows nothing
 | |
| about its structure. To be able to mount them, we first need to read its
 | |
| partition structure and create partition specific `/dev/` entires with
 | |
| `kpartx(8)`[^1].
 | |
| 
 | |
| ```shell
 | |
| # -a for add
 | |
| kpartx -a /dev/zvol/<pathtozvol>
 | |
| ```
 | |
| 
 | |
| This will create corresponding devices for partitions under `/dev/mapper`
 | |
| 
 | |
| ```
 | |
| $:/dev/mapper]# ls -al
 | |
| total 0
 | |
| drwxr-xr-x  2 root root     120 Jan 12 17:04 .
 | |
| drwxr-xr-x 20 root root    3980 Jan 12 17:04 ..
 | |
| crw-------  1 root root 10, 236 Jan 12 17:00 control
 | |
| lrwxrwxrwx  1 root root       7 Jan 12 17:04 root-zvol1 -> ../dm-0
 | |
| lrwxrwxrwx  1 root root       7 Jan 12 17:04 root-zvol2 -> ../dm-1
 | |
| lrwxrwxrwx  1 root root       7 Jan 12 17:04 root-zvol3 -> ../dm-2
 | |
| ```
 | |
| 
 | |
| Now you can mount them as a regular disk with `mount`.
 | |
| 
 | |
| ```
 | |
| mount /dev/mapper/root-zvol1 /mnt
 | |
| ```
 | |
| 
 | |
| [^1]: In nixos, `kpartx` is part of package [`multipath-tools`](https://search.nixos.org/packages?channel=23.11&show=multipath-tools&from=0&size=50&sort=relevance&type=packages&query=kpartx)
 | 
