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)
 |