Archive for category Hardware

Linux Software RAID and LVM

I wanted to create a RAID 5 array with four 1tb drives. I only have three, but I have a 750gb and 320gb drive lying around. I figured there was probably a way to combine them into a 1tb drive that I could use with the others.

Using Linux’s LVM, I can create a logical partition from the two smaller drives as big as the 1tb drive.

$ pvdisplay

Lists all physical volumes managed by LVM. First we have to create the physical volumes for LVM. I prefer to create the volumes out of partitions, although you can do it from raw drives too.

First let’s use fdisk to create “Linux LVM” partitions on the two drives.

$ fdisk /dev/sdb
Press "n" to create a new partition
Press "t" to set the partition type, and enter "8e" for Linux LVM.

When creating the partition, accepting the defaults will make it use the whole drive. I want to use the entire 750 drive and only part of the 320 drive, so that in total it has the same number of blocks as the 1tb drives. So I first created the “Linux RAID” partitions on the 1tb drives so I could see how many cylinders it listed, which ended up being 121601. So I created a partition the full size of the 750 drive (91201 cylinders), then created a 121601-91201 cylinder partition on the 320 drive.

$ fdisk -l /dev/sdb
Disk /dev/sdb: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       30400   244187968+  8e  Linux LVM
/dev/sdb2           30401       38913    68380672+  83  Linux
 
$ fdisk -l /dev/sdj
Disk /dev/sdj: 750.1 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
   Device Boot      Start         End      Blocks   Id  System
/dev/sdj1               1       91201   732572001   8e  Linux LVM

Now that I have the two partitions ready, I moved on to LVM setup.

$ pvcreate /dev/sdb1
$ pvcreate /dev/sdj1

This sets up the two partitions as physical volumes for LVM.

Next is creating a logical volume group:

$ vgcreate vg_tb /dev/sdb1 /dev/sdj1

This creates a volume group called “vg_tb” using the two physical volumes sdb1 and sdj1.

Let’s take a look at what we have so far:

$ pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg_tb
  PV Size               232.88 GB / not usable 832.50 KB
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              59616
  Free PE               59616
  Allocated PE          0
  PV UUID               70hPKX-n11U-RcB6-0Kyt-1SOP-ni7E-2Y9hcE

  --- Physical volume ---
  PV Name               /dev/sdj1
  VG Name               vg_tb
  PV Size               698.64 GB / not usable 2.34 MB
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              178850
  Free PE               178850
  Allocated PE          0
  PV UUID               PzFb9b-lapG-KdT3-78nh-Gq75-F0Lo-I3xCrl

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup00
  PV Size               111.60 GB / not usable 2.86 MB
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              3571
  Free PE               1
  Allocated PE          3570
  PV UUID               1wM65Z-3QGd-vDiq-mq1R-YhEE-Ackp-hh3g13

$ vgdisplay
  --- Volume group ---
  VG Name               vg_tb
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               931.51 GB
  PE Size               4.00 MB
  Total PE              238466
  Alloc PE / Size       0 / 0
  Free  PE / Size       238466 / 931.51 GB
  VG UUID               olg9GP-x1sC-sFAD-TgWY-KIIx-YWNt-kL763n

  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               111.59 GB
  PE Size               32.00 MB
  Total PE              3571
  Alloc PE / Size       3570 / 111.56 GB
  Free  PE / Size       1 / 32.00 MB
  VG UUID               IZ25LV-oMOG-DwKK-QuFN-bqqp-ClUe-d71k5l

So far so good. The next step is to create a logical volume in the new volume group:

$ lvcreate vg_tb -n onetb -l 100%VG
  Logical volume "onetb" created

This creates a new logical volume called “onetb” in the “vg_tb” group using 100% of the group’s available space. Now let’s take a look at the list of logical volumes:

$ lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg_tb/onetb
  VG Name                vg_tb
  LV UUID                sQKaq9-D6Mv-p8it-vWGW-O7DX-FGmC-cl5FSh
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                931.51 GB
  Current LE             238466
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                G5hlbb-tA3S-qhTS-03us-f9dl-1Vxy-9vDSU5
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                109.62 GB
  Current LE             3508
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                7NZrY9-1wSJ-4fRp-VPnM-V07u-9rj8-vmtxTx
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                1.94 GB
  Current LE             62
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

You can ignore all of the VolGroup00 things, those are the auto-created volumes from when I installed Fedora.

At this point, I have a new device at /dev/vg_tb/onetb which is the same size as my 1tb drives, and I can use it exactly as I would use the 1tb partition at /dev/sdf1.

Now it’s time to create the RAID 5 array from these four volumes.

$ mdadm -v --create /dev/md1 --chunk=128 --level=5 --raid-devices=4 /dev/sdf1 /dev/sdh1 /dev/sdi1 /dev/vg_tb/onetb
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: size set to 976756608K
mdadm: array /dev/md1 started.

The array will begin syncing, and you can watch it by running:

$ watch -n 1 "cat /proc/mdstat"
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 dm-2[4] sdi1[2] sdh1[1] sdf1[0]
      2930269824 blocks level 5, 128k chunk, algorithm 2 [4/3] [UUU_]
      [=>...................]  recovery =  5.5% (54017536/976756608) finish=593.1min speed=25925K/sec
 
md0 : active raid5 sdg1[0] sdc1[3] sde1[2] sdd1[1]
      2197715712 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
 
unused devices: <none>
</none>

While this is syncing, we can create the ext3 filesystem.

$ mke2fs -j -b 4096 -m 0 -E stride=32,stripe-width=96 /dev/md1

This creates an ext2 filesystem with journaling (ext3), the block size is 4kb, and 0% of the blocks are reserved for the superuser. The stride is calculated as the raid block size / ext2 block size (128k / 4k = 32). The stripe width is calculated as the stride value times the number of data disks in the array. In a 4-disk RAID 5 array, there are three data disks, one being for the parity data.

This will take some time, and will significantly slow down the sync process. Mine dropped from 25mb/s to around 1mb/s. I figure I’ll let it create the filesystem so I can start copying data to it right away, and let it finish its sync on its own time.

While you’re at it, you should set up munin to monitor the SMART data from all the drives as well as the status of the array using my munin-raid-monitor plugin.

Additional Reading:

, , , , ,

No Comments

DIY Power over Ethernet Cable

I am setting up a security camera mounted under the eve of my roof. Rather than running an ethernet cable and an extension cord up there, I figured I could use the four unused wires in an ethernet cable to provide the camera with power. The camera only uses 9v, so it should be pretty safe. I had a couple extra 1ft patch cables lying around, so I spliced the transformer into two patch cables. This will let me run a long CAT 5 cable from end-to-end, and attach it to the camera and ethernet/power.

Here’s a photo of how I spliced the power into the ethernet patch cables.

DIY Power over Ethernet

And a close-up of the wires soldered together.

I’m pretty sure this is all safe, but if you try this, be sure to test all the connections thoroughly with a multimeter and CAT 5 cable tester before plugging it in to the wall or any computer or switch.

, , ,

1 Comment

Another raid5 scare, and how to recover an apparently trashed array

This morning after waking up to lots of thunder and lightning, I got a text message saying my raid5 array had failed. Only this time, 2 of the 3 drives were missing. Since both of those drives were actually mounted via a vblade share (on a different physical machine), I assumed that the other server had freaked out during a power surge. I quickly rebooted the machine to bring back the vblade shares, but then the trouble started.

At some point, the array was “started” but had two faulty drives. I tried –remove and –add to remove and re-add the “faulty” drives. This had the effect of bringing the array back “online” with all the drives as spares. I removed the drives again, and tried the trick I used last time:

mdadm --assemble -f /dev/md0 /dev/sda2 /dev/etherd/e4.1 /dev/etherd/e4.2

However, this also didn’t work. It showed the array with /dev/sda2 and /dev/etherd/e4.2 as spares, and e4.1 was nowhere to be seen. At this point I was a little more than worried that I had done something to trash the array. That’s when a google search led me to this handy command:

mdadm -E /dev/sda2

This prints out the superblock information that is present on the hard drive. This told me that the e4.2 drive had not been damaged, since I was able to see information there. Also, the UUIDs on all three drives still matched. However, the bottom section of the report differed on all the drives.

A few google searches later, and I came across this:

mdadm --create --assume-clean --level=5 --raid-devices=3 /dev/md0 /dev/sda2 /dev/etherd/e4.2 /dev/etherd/e4.1

Using the –assume-clean flag tells mdadm not to write any data to the drives, or to start initializing the array. However, what I didn’t realize was that it would reset the UUIDs. That command brought the array back online, at least according to /proc/mdstat, but when I tried to mount it, it couldn’t figure out the filesystem.

That’s when I realized that the *order* in which you specify the drives to the –create command actually matters. I re-ran the command like this:

mdadm --create --assume-clean --level=5 --raid-devices=3 /dev/md0 /dev/sda2 /dev/etherd/e4.1 /dev/etherd/e4.2

The array came back online, and I was able to mount it!

So while RAID 5 protects against a single hard drive failing, it does not protect against me running stupid commands on the array. I’m going to have to start backing up my raid arrays onto other drives…

Useful Links

, ,

No Comments

Choosing a laptop for a graphic designer

This is primarily targeted towards graphic designers, although anyone can benefit from the information here as well. This post focuses on the hardware of a laptop rather than the software. I figure I’ll save a talk about software for a different day.

To begin, I would stay away from anything that isn’t Dell or Apple. IBM and Toshiba are good too, but they typically market more to corporations than home users. Both Dell and Apple are pretty much the top of the line as far as home and small business go. You’ll always hear about people who have had problems with both, but they are pretty good about fixing things if you get the extra warranty. Again, the information here is applicable to any brand of laptop, but I will mention specifics of some Dell and Apple laptops.

Let me tell you about some of the things that will make the most difference when using your laptop:

1) Screen resolution. Not screen size! My Dell that I got in 2003 is 15.4″, but has a resolution of 1680×1050. This is probably the biggest reason I haven’t stopped using it yet, even though I have an iMac as well. The screen is wide enough to fit two internet windows side by side comfortably. Also, when working in Photoshop or InDesign, the toolbars sit nicely off to the side, still leaving plenty of room in the middle for your image. The toolbars are physically small because the resolution is so high.

2) Dedicated graphics card. The lower-end computers use a graphics card that is built in and shares the main system memory. This means you lose 100-200 megabytes of RAM since your graphics card is using it.
GeForce logo
Also, the graphics card runs much slower since it has to pull data through the same bus as the system to access the RAM. Getting a dedicated graphics card means it has its own RAM and doesn’t share with the main system. If you are planning on doing any kind of video editing, this is a must. It will also make Photoshop run much faster. My Dell has a 64mb graphics card, although they are usually 128-256mb now. But even the 64mb card is better than none. Dell’s Inspiron series has the share graphics card, they call it the “Intel Graphics Media Accelerator”. The XPS and Studio series have the dedicated graphics card, either a 128mb or 256mb NVIDIA GeForce. The biggest drawback to an Apple laptop is that you don’t get a dedicated graphics card until you spend some serious money on a Macbook Pro. Their regular Macbooks have just a shared graphics card.

Laptop RAM

3) RAM. You can get away with having 1gb of RAM, but really you should shoot for 2gb minimum. 3gb is good, 4gb is more than enough for anything you’ll do, short of having all of CS3 and a video editing program open at the same time. I have slowly added RAM to my Dell over the years, which is another reason it has been able to last this long. I am up to 1.25gb at the moment. I only have CS2 installed on it, not CS3, so I can’t tell you how CS3 works with 1.25gb. A trick you can do with the Apples is buy the computer with the minimum RAM installed, then go buy separate RAM from Newegg and install it yourself. Apple charges way too much for their RAM upgrades, and it is pretty easy to install. I looked at doing that with the Dell, but they only charge $50 for an extra gig, so at that point it isn’t worth your trouble to buy it elsewhere.

4) Processor. Any of the Intel Duos will be totally fine. You really won’t notice much of a difference between the 2.1ghz and the 2.6 ghz. You will, however, notice a difference between an Intel Duo and an Intel Celeron. A lot of other brands, and also the lower-end Dells use the Celeron processors. You definitely do not want one of these. You will notice that it is much slower.

Apple Macbook

5) Built-in camera. You may not think you need it, but if you don’t get it you’ll find yourself constantly annoyed that you don’t have one and everyone else does. Video and voice chatting is becoming much more common these days. It’s all free, so it’s better than using a cell phone if you’re at your computer. Also it acts like a speaker phone because you don’t need to hold a phone to your ear to talk. I use voice and video chatting for work meetings all the time. You can’t get an Apple without a camera at this point, so that isn’t really an issue. And it looks like Dell includes a camera on all their XPS series, and has the option to add it to an Inspiron.

In Conclusion

With Dell’s Inspiron and Studio lines you can get a screen at 1920×1200. That is the same resolution as my 24″ iMac, and it’s absolutely incredible, especially for photo editing. Packing it into a 15.4″ laptop screen makes the individual pixels really tiny, but that will only make things super sharp looking.

One alternative to getting a super high resolution screen is to get one that is slightly smaller, like 1440×900, and then also get an external monitor for your desk. This will let you take advantage of an even bigger total screen size when you’re sitting at your desk, and will still be fine when you are mobile. I use an external 17″ screen along with my main screen on my iMac. I have the extra screen turned on its side so that it is more like looking at a printed page. I can leave things over there for reference while I’m typing on my main screen, like code documentation or file browsers. When working in Creative Suite, it is really nice to be able to open up all the tool palettes and shove them on to the external monitor, and use the full size of the main screen for the document you’re editing!

Hopefully this information helps someone in their search for the perfect laptop. I’m sure I’ll have a write-up comparing software some other time. Feel free to comment on your experiences in choosing a laptop. I’d be curious to hear what others think.

, , , , ,

1 Comment

Phone as a Wifi access point!

This is pretty much the coolest thing in the world! I am posting from my laptop which is connected to my cell phone’s wifi connection, using Sprint’s EVDO connection to the internet. The software that enables me to do this is called wmwifirouter. Earlier this month they released their first final version of the software, and started charging for it. It’s not outrageously priced, but you can still find the earlier free versions on the internet if you search for versions 0.90 or 0.89.

Sprint’s EVDO connection is actually pretty speedy. Of course it’s not like having a cable connection, but it’s definitely faster than dialup. I downloaded a 2mb file at a solid 85kb/s. Also see below for a traceroute to this server.

Continue reading “Phone as a Wifi access point!”

, , , ,

No Comments

Syncing Windows Mobile with OS X and Google Calendar

Sprint MogulImage by nino63004 via Flickr

Well I did it! I got the HTC Mogul on Sprint’s SERO plan. Everything has been pretty painless so far. Activation was easy, text messaging works, and Internet browsing is pretty fast! Now comes the hard part: getting my data to sync between Windows Mobile and OS X.

There is an excellent program out there that is made exactly for this: Missing Sync. While not free, I do think it’s a good deal, so I went ahead and bought it. Everything transferred over flawlessly, and it’s pretty neat being able to see my call and SMS log on my computer.

However, my syncing ship has only begun to sail. I use Google Calendar as my primary calendar for everything. It has been a huge help in keeping things organized, since I can open it from any computer. My friends and I also subscribe to each others’ calendars so that we can better schedule things together. It can send text message reminders of events, which was a huge help for when I was out and about with no access to a computer. I moved to Google Calendar from iCal a while ago for these reasons.

Missing Sync can sync the Mogul’s calendar with iCal, but not with Google Calendar. I tried subscribing iCal to Google Calendar’s public url, but Missing Sync didn’t like that because it was a read-only calendar. I decided going the other way, publishing iCal to a URL, then subscribing Google Calendar to that, was a better option. I enabled WebDAV on a virtual host on my server.

DAVLockDB /www/sub.mydomain.com/dav/davlockdb
DAVMinTimeout 600
DAV On
<location /ical>
    Options None
    SSLRequireSSL
    SSLOptions +StdEnvVars
    AuthType Basic
    AuthName "Calendar Access"
    AuthUserFile "/www/sub.mydomain.com/ssl/.htpasswd"
    <limitexcept GET HEAD OPTIONS>
        require user aaron
    </limitexcept>
</location>

Publishing iCal to a WebDAV server is super easy, just choose “Publish on a Private Server” and enter the URL you have created.

Note: You don’t need to run your own WebDAV server to do this, you can use box.net to publish your iCal!

The one downside to this is that it isn’t possible to add events using Google Calendar. But I figure I’ll have my Mogul on my all the time anyway, and I can just add through there. Publishing my calendar to Google Calendar lets my friends still see my schedule.

, ,

No Comments

Cell phones hurt my brain

But not in the radiation kind of way… in the omg-too-many-things-to-think-about kind of way.

I’m in the market for a new cell phone and provider. I’ve been on a Verizon family plan for the last 5 years, always with the free phone that comes with the plan. I’m switching to my own plan when the family contract is up. I’ve been pretty happy with the quality of calls on Verizon, and coverage seems to be great wherever I need it. But I’m definitely open to switching to another provider.

One of the hardest parts is figuring out how to start looking for a phone and plan. I think I’m going about this the wrong way. I have vague idea of what I want in a phone, but mostly I’ve just been reading lots and looking at lots of different options.

I’ve been hearing a lot of talk about Sprint’s SERO plan. For $50/month I can get 1250 minutes, and unlimited text and data. That’s hard to pass up. On the other hand, there are some features I want that none of the SERO phones seem to have.

It’s time to take a different approach to this, since I seem to continuously waste hours on end reading about phones. I’m going to use the MoSCoW Method to figuring out what cell phone I should get! The MoSCoW Method is used in software development to help prioritize features the client wants.

Must Without this, the project is a failure
Should Should have this if at all possible
Could Could have this if it does not delay Shoulds or Musts
Won’t Won’t have this in this version, but Would like in the future

While this method was not exactly intended for this, I am going to prioritize my wishlist of cell phone (and service plan) features into these categories. However, the “W” doesn’t really seem to apply here, so I’ll leave out that category.

Must

Should

Could

  • > 1000 Minutes
  • Text messaging
  • Must NOT have ONLY a touchscreen
  • Integration with Google Calendar, or at least iCal, either in the form of a calendar app on the phone, or web access to Google Calendar
  • A real GPS receiver so that I could run something like the Google Map Cell Phone Tracker
  • An Internet browser

Some things I’ve been reading:

So far it looks like either the HTC Mogul or Palm Treo 755p are at the top of my list.

, ,

No Comments

Caller ID Box

Update:

Everything looks like it should be working, and I even modified the answering_machine.c script a little bit. But for some reason, it appears as though the modem is just never receiving the ring signal. It may be because I am running it in a dual processor machine. I am going to reinstall linux in a single processor machine and try again.

No Comments

Fun with caller ID!

We just got caller ID at my house. One of my roommates doesn’t have a cell phone, so eventually everyone else stopped answering the house phone because it was always for him. But then he would come home and not know who called. Now of course, caller ID solves this problem by logging who called on the phone handset, but being me, that is not enough!

My plan is to hook up a computer to the phone system, so that when a call comes through, it will send the caller ID information to a list of subscribed AIM screennames, that way I and he and anyone else will be instantly notified of who is calling without having to run to the phone.

So far, I’ve found a great guide for a simple setup of a linux answering machine, which I will adapt to use as this caller ID notifier. A $10 Linux Answering Machine.

I’m installing the zaptel driver at the moment, on a Fedora Core 6 box. Here is the process so far:

cd /usr/src
wget http://ftp.digium.com/pub/zaptel/zaptel-1.4.2.1.tar.gz
tar -xzf zaptel-1.4.2.1.tar.gz
cd zaptel-1.4.2.1

I got an error the first time I tried to run make:

xbus-core.c:171: error: ’struct inode’ has no member named ‘u’

Because I am using FC6, I needed to make a small tweak to the source code, according to this message.

edit this file:
xpp/xbus-core.c
and search for u.generic_ip
change the line above that from 2,6,19 to 2,6,18

Now continue the normal build process: make, make install

The location of the zapata library has moved to:
http://ftp.digium.com/pub/zaptel/releases/

When I tried to run ‘make’, I got a bunch of errors about undeclared constants, starting with

zap.c:571:26: error: linux/zaptel.h: No such file or directory

It looks like the zap.c and goertzel.c files are looking for the zaptel.h file in linux/zaptel.h, but not finding it. I have no idea why, but I change the include lines to look for /usr/include/zaptel/zaptel.h, and it works.

Continuing with Bob’s instructions, I got down to where I need to compile his program. I got some errors like:

answering_machine.c:77: warning: incompatible implicit declaration of built-in function ‘exit’
answering_machine.c:87: warning: incompatible implicit declaration of built-in function ’strncpy’

I found that it is necessary to add a couple of include lines:

#include <stdlib.h>
#include <string.h>

I also disabled SElinux before I could run this program.

vi /etc/sysconfig/selinux
SELINUX=disabled
echo 0 > /selinux/enforce

This will disable SElinux from ever starting again, and disable it in the current boot

No Comments

2/4 failed drives in a raid5 array??

Apparently raid arrays don’t like it when you kill power to the machine. We’ve been doing remodeling in the house, and I’ve been turning on and off breakers. Apparently I forgot which breaker the servers were on, and turned it off accidentally a few times.

One of the drives apparently did fail for some reason. I accept this. This happens all the time, and that is exactly why I have a raid 5 array. I was like ok no big deal, I’ll just send it in for an RMA. But shortly after, another drive looked like it failed. I saw this in /proc/mdstat:

…[U__U]

meaning only two of the four drives were left. Future attempts at rebooting the machine resulted in the raid volume not being accessible at all. Other clues that indicated a drive failure:

From /var/log/messages:

Dec 29 19:29:06 onyx kernel: Buffer I/O error on device md0, logical block 0
Dec 29 19:29:06 onyx kernel: lost page write due to I/O error on md0
Dec 29 19:29:06 onyx kernel: EXT2-fs error (device md0): ext2_readdir: bad page in #2

There was also some output in dmesg I found by typing

dmesg | less

(But I didn’t write it down, and now dmesg outputs information from the last boot which successfully brought up the array with 3/4 drives.)

I was convinced I hadn’t actually lost 2/4 drives at the same time, and set out to figure out a way to bring it back.

After several hours of looking through forums and reading the mdadm documentation, I was able to get the array back running on 3/4 drives.

I created the configuration file /etc/mdadm.conf:

DEVICE /dev/sd[abcd]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1

Then ran:

/sbin/mdadm –assemble -f /dev/md0
mdadm: forcing event count in /dev/sdc1(2) from 1077319 upto 1077330
mdadm: clearing FAULTY flag for device 1 in /dev/md0 for /dev/sdc1
mdadm: /dev/md0 has been started with 3 drives (out of 4).

Now I just have to RMA this drive very quickly before another drive actually does fail.

,

No Comments