Bueno, realmente depende de cuán de solo lectura desee que sea el grupo. Y no, eso no es una broma.
Primero, un poco de terminología: en ZFS, importa un grupo y, opcionalmente, monta los (cualquier) sistema de archivos dentro de él. Puede importar una piscina sin tener que montar los sistemas de archivos mediante el paso -N
a zpool import
y luego montar más adelante los sistemas de archivos deseados utilizando zfs mount
. (Este es un escenario perfectamente válido si, por ejemplo, desea acceder a un solo sistema de archivos de muchos, o si desea hacer algo parecido a un exfoliante fuera de línea del grupo).
ZFS no es un gran admirador del acceso verdaderamente de solo lectura. Por ejemplo, si ZFS detecta un error que puede reparar, creo que reparará el error y escribirá los datos reparados en el disco, incluso si importó el grupo como de solo lectura. Tengo entendido que, en ZFS parlace, "solo lectura" se aplica solo al estado visible del usuario del grupo y sus conjuntos de datos. Si, por otro lado, realiza una copia binaria del disco en un archivo (o conjunto de archivos), hace que esos archivos sean realmente de solo lectura e intente importar el grupo desde allí, ZFS no podrá importar el piscina en absoluto sin importar cuánto lo intentes. Si hace que los archivos se puedan escribir, funcionará bien. (De hecho, intenté esto hace solo unas semanas, aunque usé un zvol, y ZFS se negó vehementementepara importar el grupo. Cuando configuré el zvol para leer / escribir en lugar de solo lectura, el grupo se importó bien.) Otros sistemas de archivos como (en Linux) ext4 y probablemente otros manejan esta situación con gracia, pero ZFS se resiste.
Si tiene mala suerte y no tiene RAM ECC instalada en el sistema donde está importando el grupo, entonces ZFS 'intentar corregir cualquier error que encuentre podría empeorar las cosas , aunque las opiniones difieren sobre si esto es realmente un riesgo real en la práctica. Personalmente, considero que cualquier dato que me preocupe lo suficiente como para protegerlo con ZFS e instantáneas y redundancia y copias de seguridad a nivel de almacenamiento y otras cosas que no merecen la protección que ofrece ECC RAM también, pero muchas PC no tienen ECC RAM.
Por lo tanto, puede importar la piscina en el modo de sólo lectura, con una raíz alternativa específica para evitar que pisar cualquier otra cosa es dedos de los pies, pero hay que tener en cuenta que no es necesariamente verdad de sólo lectura en un sentido forense. (Sin embargo, se asegurará de que no cambie accidentalmente nada en el grupo). Para realizar una importación de solo lectura, suponiendo que el grupo tenga un nombre tank
y que los nodos del dispositivo estén disponibles /dev
, debería usa un comando como:
# zpool import tank -d /dev -o readonly=on -R /mnt/someplace
Esto se verá en /dev
nada la celebración de una piscina de ZFS con el nombre tank
, importarlos, fijando temporalmente la propiedad de agrupación readonly
a on
(lo que significa que serán rechazadas todas las escrituras iniciadas por el usuario) y establecer temporalmente su altroot
propiedad a /mnt/someplace
. (Estos valores de propiedad son "temporales" en el sentido de que no se conservan en los discos como valores de propiedad actuales, por lo que si exporta y vuelve a importar el grupo sin ellos, los valores volverán a la normalidad. sin embargo, posiblemente se escriba en el historial del grupo, que una vez que se importa el grupo se puede ver conzpool history tank
si lo desea.) Una vez que se haya importado el grupo, verá sus archivos en / mnt / en algún lugar y tendrá acceso normal de solo lectura a ellos, incluidas las instantáneas que ya se hayan realizado en los conjuntos de datos del grupo.
Dado su ejemplo, sospecho que usaría algo como:
# zpool import zroot02 -d /dev -o readonly=on -R /mnt/my-fun-mountpoint
Cuando haya terminado, recuerde exportar limpiamente el grupo:
# zpool export tank
o quizás
# zpool export zroot02
Eso desmontará todos los sistemas de archivos y otros conjuntos de datos dentro del grupo, vaciará todos los búferes (en la medida en que sea necesario enjuagarlos en primer lugar), marcará el grupo como no importado en todos los dispositivos constituyentes y realizará cualquier otra tarea de mantenimiento necesaria para garantizar que el grupo se puede mover de forma segura a un sistema diferente e importar allí más tarde.