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