blob: 2ffa92e4e12075d52c54ee4cadd54969bd4d46f4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
|
================================================================================
ARCHZFS RESCUE GUIDE
================================================================================
This guide covers common rescue and recovery scenarios. For quick command
reference, use: tldr <command>
Table of Contents:
1. ZFS Recovery
2. Data Recovery
3. Boot Repair
4. Windows Recovery
5. Hardware Diagnostics
6. Disk Operations
7. Network Troubleshooting
================================================================================
1. ZFS RECOVERY
================================================================================
QUICK REFERENCE
---------------
tldr zfs # ZFS filesystem commands
tldr zpool # ZFS pool commands
man zfs # Full ZFS manual
man zpool # Full zpool manual
SCENARIO: Import a pool from another system
-------------------------------------------
List pools available for import:
zpool import
Import a specific pool:
zpool import poolname
If the pool was not cleanly exported (e.g., system crash):
zpool import -f poolname
Import with a different name (to avoid conflicts):
zpool import oldname newname
SCENARIO: Pool won't import - "pool may be in use"
--------------------------------------------------
Force import (use when you know it's safe):
zpool import -f poolname
If that fails, try recovery mode:
zpool import -F poolname
Last resort - import read-only to recover data:
zpool import -o readonly=on poolname
SCENARIO: Check pool health and repair
--------------------------------------
Check pool status:
zpool status poolname
Start a scrub (checks all data, can take hours):
zpool scrub poolname
Check scrub progress:
zpool status poolname
Clear transient errors after fixing hardware:
zpool clear poolname
SCENARIO: Recover from snapshot / Rollback
------------------------------------------
List all snapshots:
zfs list -t snapshot
Rollback to a snapshot (destroys changes since snapshot):
zfs rollback poolname/dataset@snapshot
For snapshots with intermediate snapshots, use -r:
zfs rollback -r poolname/dataset@snapshot
SCENARIO: Copy data from ZFS pool
---------------------------------
Mount datasets if not auto-mounted:
zfs mount -a
Or mount specific dataset:
zfs set mountpoint=/mnt/recovery poolname/dataset
zfs mount poolname/dataset
Copy with rsync (preserves permissions, shows progress):
rsync -avP --progress /mnt/recovery/ /destination/
SCENARIO: Send/Receive snapshots (backup/migrate)
-------------------------------------------------
Create a snapshot first:
zfs snapshot poolname/dataset@backup
Send to a file (local backup):
zfs send poolname/dataset@backup > /path/to/backup.zfs
Send with progress indicator:
zfs send poolname/dataset@backup | pv > /path/to/backup.zfs
Send to another pool locally:
zfs send poolname/dataset@backup | zfs recv newpool/dataset
Send to remote system over SSH:
zfs send poolname/dataset@backup | ssh user@remote zfs recv pool/dataset
With progress and buffering for network transfers:
zfs send poolname/dataset@backup | pv | mbuffer -s 128k -m 1G | \
ssh user@remote "mbuffer -s 128k -m 1G | zfs recv pool/dataset"
SCENARIO: Encrypted pool - unlock and mount
-------------------------------------------
Load the encryption key (will prompt for passphrase):
zfs load-key poolname
Or for all encrypted datasets:
zfs load-key -a
Then mount:
zfs mount -a
SCENARIO: Replace failed drive in mirror/raidz
----------------------------------------------
Check which drive failed:
zpool status poolname
Replace the drive (assuming /dev/sdc is new drive):
zpool replace poolname /dev/old-drive /dev/sdc
Monitor resilver progress:
zpool status poolname
SCENARIO: See what's using a dataset (before unmount)
-----------------------------------------------------
Check what processes have files open:
lsof /mountpoint
Or for all ZFS mounts:
lsof | grep poolname
USEFUL ZFS COMMANDS
-------------------
zpool status # Pool health overview
zpool list # Pool capacity
zpool history poolname # Command history
zfs list # All datasets
zfs list -t snapshot # All snapshots
zfs get all poolname # All properties
zdb -l /dev/sdX # Low-level pool label info
================================================================================
2. DATA RECOVERY
================================================================================
[To be added]
================================================================================
3. BOOT REPAIR
================================================================================
[To be added]
================================================================================
4. WINDOWS RECOVERY
================================================================================
[To be added]
================================================================================
5. HARDWARE DIAGNOSTICS
================================================================================
[To be added]
================================================================================
6. DISK OPERATIONS
================================================================================
[To be added]
================================================================================
7. NETWORK TROUBLESHOOTING
================================================================================
[To be added]
================================================================================
END OF GUIDE
================================================================================
|