在之前的2篇博客中分别看了linux boot分区的修复过程:
Linux boot 分区损坏重建 示例
https://www.cndba.cn/dave/article/3534Linux boot分区格式化后恢复 示例
https://www.cndba.cn/dave/article/3535
本篇我们看下直接替换boot分区的位置。 我们将boot 分区从/dev/sda1 替换到/dev/sdb1。
1 准备新的boot分区
在/dev/sdb中分配了500M的空间来存放boot:
[dave@www.cndba.cn ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000abd78
Device Boot Start End Blocks Id System
[dave@www.cndba.cn ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261): +500M
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[dave@www.cndba.cn ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000abd78
Device Boot Start End Blocks Id System
/dev/sdb1 1 65 522081 83 Linux
[dave@www.cndba.cn ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
130560 inodes, 522080 blocks
26104 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
64 block groups
8192 blocks per group, 8192 fragments per group
2040 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[dave@www.cndba.cn ~]#
2 更换boot 分区到/dev/sdb1
利用ISO镜像,进入rescure 模式。
卸载之前的boot:
[dave@www.cndba.cn~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_dave-lv_root
26G 3.0G 22G 12% /
/dev/sda1 471M 42M 405M 10% /boot
tmpfs 3.9G 0 3.9G 0% /dev/shm
[dave@www.cndba.cn~]# umount /boot
[dave@www.cndba.cn~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_dave-lv_root
26G 3.0G 22G 12% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
[dave@www.cndba.cn~]#
修改/etc/fstab 文件:
[dave@www.cndba.cn~]# blkid
/dev/mapper/vg_dave-lv_root: UUID="7af80925-1650-4b5c-9161-247f05f37923" TYPE="ext4"
/dev/loop0: TYPE="squashfs"
/dev/sda1: LABEL="/boot" UUID="011a5170-18ef-4272-be35-bd7f1221c621" TYPE="ext4"
/dev/sda2: UUID="2K7Cna-zmCT-l1eX-mN6f-3p9Z-5b8j-0onbLN" TYPE="LVM2_member"
/dev/mapper/vg_dave-lv_swap: UUID="3d592f95-9ad6-41ef-8c53-f30ad47c475e" TYPE="swap"
/dev/sdb1: UUID="2aefcee9-426b-4e93-a576-3e858deb015a" TYPE="ext4"
[dave@www.cndba.cn~]# vim /etc/fstab
[dave@www.cndba.cn~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Aug 13 16:23:52 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_dave-lv_root / ext4 defaults 1 1
#UUID=011a5170-18ef-4272-be35-bd7f1221c621 /boot ext4 defaults 1 2
UUID=2aefcee9-426b-4e93-a576-3e858deb015a /boot ext4 defaults 1 2
/dev/mapper/vg_dave-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
[dave@www.cndba.cn~]#
将新的分区挂在到boot:
[dave@www.cndba.cn~]# mount /dev/sdb1 /boot
[dave@www.cndba.cn~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_dave-lv_root
26G 3.0G 22G 12% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/sdb1 486M 2.3M 458M 1% /boot
[dave@www.cndba.cn~]#
安装kernel:
[dave@www.cndba.cn~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[dave@www.cndba.cn~]# rpm -ivh /mnt/Packages/kernel-2.6.32-573.el6.x86_64.rpm --force
warning: /mnt/Packages/kernel-2.6.32-573.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:kernel ########################################### [100%]
重建grub:
[dave@www.cndba.cn~]# grub-install /dev/sdb
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
(hd2) /dev/sdc
[dave@www.cndba.cn~]#
同步grub:
[dave@www.cndba.cn~]# sync
创建/boot/grub/grub.conf 文件,也可以通过ISO镜像来直接创建,注意这里的boot loader(MBR) 还是选择主硬盘,而不是boot 分区。
如果手工创建,那么如下:
[dave@www.cndba.cngrub]# touch grub.conf
[dave@www.cndba.cngrub]# vim grub.conf
[dave@www.cndba.cngrub]# cat grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux 6 (2.6.32-573.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/vg_dave-lv_root rd_LVM_LV=vg_dave/lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_dave/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-573.el6.x86_64.img
[dave@www.cndba.cngrub]#
重启系统,替换成功。查看boot分区,成功替换成了新的disk: /dev/sdb1:
[dave@www.cndba.cn ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_dave-lv_root
26G 3.0G 22G 12% /
tmpfs 3.8G 72K 3.8G 1% /dev/shm
/dev/sdb1 486M 42M 420M 9% /boot
[dave@www.cndba.cn ~]#
版权声明:本文为博主原创文章,未经博主允许不得转载。
- 上一篇:Linux boot分区格式化后恢复 示例
- 下一篇:POC 测试