error on boot:
devfsadm: mkdir failed for /dev 0x1ed: Read-only file system
I usually see this error when there is a meta device issue or after breaking a sub-mirror.
From the OK prompt boot into failsafe mode.
{ok} boot -F failsafe
Mount a disk to /a , copy the md.conf file
# mount -o ro /dev/dsk/c1t0d0s0 /a # cp /a/kernel/drv/md.conf /kernel/drv/md.conf # umount /a # update_drv -f md devfsadm: mkdir failed for /dev 0x1ed: Read-only file system
At this point metastat command should work.
We only care about s0.
Your output may vary depending on how you set up your mirror.
# metastat -p d0 -m d2 d3 1 d2 1 1 c1t0d0s0 d3 1 1 c1t1d0s0
Now we are going to mount d0
# fsck /dev/md/rdsk/d0 # mount /dev/md/dsk/d0 /a
We are going to look at the /a/etc/vfstab and /a/etc/system files
Always backup your files before editing.
Your vfstab should have the corresponding metadevice:
# cat /a/etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/md/dsk/d1 - - swap - no - /dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no - /dev/md/dsk/d7 /dev/md/rdsk/d7 /var ufs 1 no - /dev/md/dsk/d6 /dev/md/rdsk/d6 /home ufs 2 yes - /dev/md/dsk/d5 /dev/md/rdsk/d5 /opt ufs 2 yes -
Your /etc/system should have this line uncommented out:
NOTE: in the /etc/system * (astrisk) are considered comments not # (pound signs)
# grep root /etc/system rootdev:/pseudo/md@0:0,0,blk
Update the boot-archive and reboot
# bootadm update-archive -R /a Creating boot_archive for /a updating /a/platform/sun4u/boot_archive 15+0 records in 15+0 records out # umount /a # init 6
At this point your system should boot up.
If you broke your mirror as part of a patching exercise.
You would perform the same steps on your disk device instead of your meta device.
# mount -o ro /dev/dsk/c1t0d0s0 /a # cp /a/kernel/drv/md.conf /kernel/drv/md.conf # umount /a # update_drv -f md devfsadm: mkdir failed for /dev 0x1ed: Read-only file system # metastat -p d0 -m d2 d3 1 d2 1 1 c1t0d0s0 d3 1 1 c1t1d0s0
Perform the steps on both c1t0d0s0 and c1t1d0s0
# fsck /dev/rdsk/c1t1d0s0 # mount /dev/rdsk/c1t1d0s0 /a
Your vfstab in this case would have disk devices as compared to meta devices.
Example of partial vfstab using disk devices.
Always backup your files before editing.
/dev/dsk/c1t1d0s1 - - swap - no - /dev/dsk/c1t1d0s0 /dev/rdsk/c1t1d0s0 / ufs 1 no - /dev/dsk/c1t1d0s7 /dev/rdsk/c1t1d0s7 /var ufs 1 no - /dev/dsk/c1t1d0s6 /dev/rdsk/c1t1d0s6 /home ufs 2 yes - /dev/dsk/c1t1d0s5 /dev/rdsk/c1t1d0s5 /opt ufs 2 yes -
In this case /etc/system should have this line commented out:
NOTE: in the /etc/system * (astrisk) are considered comments not # (pound signs)
# grep root /etc/system * rootdev:/pseudo/md@0:0,0,blk
Update the boot-archive and reboot
# bootadm update-archive -R /a Creating boot_archive for /a updating /a/platform/sun4u/boot_archive 15+0 records in 15+0 records out # umount /a # init 6