File: tag_superblock.html

package info (click to toggle)
lg-issue32 2-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 2,320 kB
  • ctags: 142
  • sloc: makefile: 36; ansic: 25; sh: 4
file content (227 lines) | stat: -rw-r--r-- 8,833 bytes parent folder | download | duplicates (3)
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
<!--startcut ======================================================= -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head>
<META NAME="generator" CONTENT="lgazmail v1.1preB">
<TITLE>The Answer Guy 32: 
Bad Super-block on Filesystem
</TITLE> 
<!-- ORIGINAL SUBJECT:
corrupted super-block 
JTD SUBTITLE:

-->
</head>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <hr> <P>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<H1 align="center"><A NAME="answer">
	<img src="../gx/dennis/qbubble.gif" alt="" border="0" align="middle">
	<a href="./lg_toc32.html">The Answer Guy</a>
	<img src="../gx/dennis/bbubble.gif" alt="" border="0" align="middle">
</A></H1> 
<BR>
<H4 align="center">By James T. Dennis,
	<a href="mailto:answerguy@ssc.com">answerguy@ssc.com</a>
	<BR>Starshine Technical Services, <A HREF="http://www.starshine.org/">http://www.starshine.org/</A> 
</H4>
<p><hr><p>
<!--endcut ========================================================= -->
<H3><img src="../gx/dennis/qbub.gif" alt="(?)"
width="50" height="28" align="left" border="0"
>Bad Super-block on Filesystem</H3>
<p><strong>From Mike Klicpera on 20 Aug 1998 </strong></p>
<!-- begin body -->


<strong><p>I am trying to correct a corrupted super-block on my Linux (Redhat
ver.  4.2) system.  When using the command "<tt>e2fsck -av /dev/hda2</tt>"
the resulting message is that "<tt>a bad magic number in super-block</tt>"
When using the command "<tt>e2fsck -b 8193 /dev/hda2</tt>" the resulting
message is "<tt>attempt to read block from filesystem resulted in short
read while trying to open /dev/hda2</tt>".  In neither case did the
program <tt>e2fsck</tt> correct the super-block.  Could you provide any
advice or point me in the right direction?
</p></strong>

<blockquote>I'd start by looking at the partition table.
</blockquote>
<blockquote>Use <tt>fdisk -l</tt> 
	<em>[the letter ell, not the number one -- Heather]</em>  
to list all the partitions that your Linux
system can see.  Make sure that the <tt>/dev/hda2</tt> really 
is supposed to be a Linux native partition (that you
haven't swap devices and the partition has moved to 
<tt>/dev/hdb2</tt> --- and that it isn't a swap partition or 
whatever).  
</blockquote>
<blockquote>It's also possible that you've switched from some 
autotranslation mode to linear (LBA) or otherwise changed 
how the system addresses this drive.  Normally this 
shouldn't affect Linux --- but I don't know what sort
of situation you have.
</blockquote>
<blockquote>The "short read" error causes me to suspect that 
the partition table is wrong or that you're pointing
fsck to the wrong device/slice.  That's the error I get
if I run <tt>debugfs</tt> on a directory or file rather than the 
proper <tt>/dev/</tt> node.  It's also possible to get this if
you've got a partition that's listed as Linux native
that has <EM>no filesystem</EM> yet made on it or when you 
try the <tt>e2fsck -b</tt> on an MS-DOS filesystem.
</blockquote>
<blockquote>You can try a number of other superblocks (they should
be scattered every 8K clusters)
</blockquote>
<blockquote>In a particularly bad case you can try <tt>mke2fs -S</tt>
(make superblocks and group descriptors only).  This 
is described in the man page --- and is for "last ditch"
efforts only.
</blockquote>
<blockquote>If you have a tape drive or a suitably large extra
disk drive you can make an "image" backup of this
device before you try any other (more radical) attempts
at data recovery.  You'd just use a command like:
</blockquote>

<blockquote><blockquote><code>dd if=/dev/hda2 of=/dev/nst0
</code></blockquote></blockquote>

<blockquote>... or better:
</blockquote>

<blockquote><blockquote><code>dd if=/dev/hda | buffer /dev/st0
</code></blockquote></blockquote>

<blockquote>... to backup the entire drive through the "<tt>buffer</tt>"
program to stream all of the data out to your SCSI
tape drive.
</blockquote>
<blockquote>You can write the image to another block device, such
as <tt>hdc3</tt> using a command like:
</blockquote>

<blockquote><blockquote><code>dd if=/dev/hda of=/dev/hdc3
</code></blockquote></blockquote>

<blockquote>(assuming you have a large enough blank partition on 
the extra or loaner drive).
</blockquote>
<blockquote>You can even send the data to another system with
a command like:
</blockquote>

<blockquote><blockquote><code>dd if=/dev/hda | rsh $othersystem dd of=/dev/hdc3
</code></blockquote></blockquote>

<blockquote>(or whatever).
</blockquote>
<blockquote>The advantage of any of these techniques is that 
it allows you to experiment with various recovery 
techniques with less chance of "making it worse"
(any time you think you've "made it worse" you
use the reverse commands to "start over").
</blockquote>
<blockquote>There are a number of hex editors for Linux, some
with nice ncurses interfaces.  These can allow you
to explore a filesystem trying to find out where
things are.  I haven't played with any of these
enough to be any good with them --- and I've never
read through the sources to find out where the 
interesting data structures should be, or what they
should look like.
</blockquote>
<blockquote>Eventually I'd like to see the Linux programming 
community produce a set of fs recovery tools to rival
the Norton Utilities for DOS (for which I used to be
a professional support rep).  The first such tool would
be one that could scan a raw device, find superblocks 
and report the information from them.  
</blockquote>

<strong><p><img src="../gx/dennis/bbub.gif" height="28" width="50" 
	alt="(!)" border="0">Thanks in advance for any help.
</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" height="28" width="50" 
	alt="(!)" border="0">I hope it helps.</blockquote>
<!-- end body -->

<!--startcut =======================================================  -->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/ssc.copying.html"
	>Copyright &copy;</a> 1998, James T. Dennis <BR>
Published in <I>Linux Gazette</I> Issue 32 September 1998</H5>
<P> <hr> <P>

<!--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-->
<table width="98%"><tr valign="center" align="center">
<td rowspan="3"><A HREF="../lg_answer32.html"><IMG
        SRC="../gx/dennis/answernew.gif"
        ALT="[ Answer Guy Index ]"></A></td>
  <td><A HREF="tag_phreak.html">phreak</A>
  <td><A HREF="tag_abandon.html">abandon</A>
  <td><A HREF="tag_javaterm.html">javaterm</A>
  <td><A HREF="tag_BBS.html">BBS</A>
  <td><A HREF="tag_flaws.html">flaws</A>
  <td><A HREF="tag_doslinux.html">doslinux</A>
  <td><A HREF="tag_resume.html">resume</A>

</tr><tr valign="center" align="center">
  <td><A HREF="tag_softwindows.html">softwindows</A>
  <td><A HREF="tag_convert.html">convert</A>
  <td><A HREF="tag_apache.html">apache</A>
  <td><A HREF="tag_emulate.html">emulate</A>
  <td><A HREF="tag_database.html">database</A>
  <td><A HREF="tag_distrib.html">distrib</A>
  <td><A HREF="tag_proxy.html">proxy</A>

</tr><tr valign="center" align="center">
  <td><A HREF="tag_disable.html">disable</A>
  <td><A HREF="tag_DVI.html">DVI</A>
  <td><A HREF="tag_superblock.html">superblock</A>
  <td><A HREF="tag_serial.html">serial</A>
  <td><A HREF="tag_permission.html">permission</A>
  <td><A HREF="tag_detach.html">detach</A>
  <td><A HREF="tag_cdr.html">cdr</A>

</tr><tr valign="center" align="center">
  <td><A HREF="tag_rs422.html">rs422</A>
  <td><A HREF="tag_modem.html">modem</A>
  <td><A HREF="tag_notfound.html">notfound</A>
  <td><A HREF="tag_tuning.html">tuning</A>
  <td><A HREF="tag_libc5.html">libc5</A>
  <td><A HREF="tag_startup.html">startup</A>
  <td><A HREF="tag_clock.html">clock</A>
  <td><A HREF="tag_ping.html">ping</A>

</tr><tr valign="center" align="center">
  <td><A HREF="tag_accounts.html">accounts</A>
  <td><A HREF="tag_lilo.html">lilo</A>
  <td><A HREF="tag_NDS.html">NDS</A>
  <td><A HREF="tag_95slow.html">95slow</A>
  <td><A HREF="tag_nonlinux.html">nonlinux</A>
  <td><A HREF="tag_progenv.html">progenv</A>
  <td><A HREF="tag_cluster.html">cluster</A>
  <td><A HREF="tag_ftpd.html">ftpd</A>

</tr></table>
<P> <hr> <P>
<!--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-->
<A HREF="./lg_toc32.html"><IMG SRC="../gx/indexnew.gif"
        ALT="[ Table Of Contents ]"></A>
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif"
        ALT="[ Front Page ]"></A>
<A HREF="lg_bytes32.html"><IMG SRC="../gx/back2.gif"
        ALT="[ Previous Section ]"></A>
<A HREF="./stemen.html"><IMG SRC="../gx/fwd.gif"
        ALT="[ Next Section ]"></A>
<!--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-->
</body>
</html>
<!--endcut ========================================================= -->