Устанавливаем SystemRescueCD на NTFS-флешку
Дистрибутив SystemRescueCD — удобный мини-дистрибутив, которым я пользуюсь для разбивки жестких дисков на разделы.
Озадачился установкой его на флешку, которую я переформатировал под NTFS, чтобы было можно записывать на нее файлы больше 4Гб. Ранее для установки я использовал Unetbootin, но в последних версиях они выпилили поддержку NTFS. Решил сделать вручную. Причем, оказалось, что ISO-образ дистрибутива можно не распаковывать на флешку, а использовать как есть.
- Итак, сначала создадим на флешке папку под загрузчик GRUB — /boot, папку для образа системы — /boot/iso
- Установим загрузчик:
1 | grub-install --no-floppy --root-directory=/media/oleg/flash /dev/sdb |
В /media/oleg/flash/boot на флешке будет установлен GRUB, /dev/sdb — файл-устройство вашей флешки
- Скопируем в /media/oleg/flash/boot/iso файл с образом системы systemrescuecd-x86-3.7.1.iso
- Создадим файл /media/oleg/flash/boot/grub/grub.cfg примерно такого содержания:
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 | # Global options set timeout=90 set default=0 set fallback=1 set pager=1 set menu_color_normal=white/black set menu_color_highlight=blue/light-gray # Display settings if loadfont /boot/grub/font.pf2 ; then set gfxmode=auto insmod efi_gop insmod efi_uga insmod gfxterm terminal_output gfxterm fi menuentry "SystemRescueCd (32bit, directly start the grahical environment)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue32 dostartx isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "SystemRescueCd (32bit, default boot options)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue32 isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "SystemRescueCd (32bit, cache all files in memory)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue32 docache isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "SystemRescueCd (32bit, alternative kernel with default options)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/altker32 isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "SystemRescueCd (32bit, disable Kernel-Mode-Settings)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue32 nomodeset isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "Boot exising Linux OS installed on the disk (32bit kernel)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue32 root=auto initrd (loop)/isolinux/initram.igz } menuentry "SystemRescueCd (64bit, default boot options)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue64 isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "SystemRescueCd (64bit, cache all files in memory)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue64 docache isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "SystemRescueCd (64bit, alternative kernel with default options)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/altker64 isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "SystemRescueCd (64bit, disable Kernel-Mode-Settings)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue64 nomodeset isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "SystemRescueCd (64bit, directly start the grahical environment)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue64 dostartx isoloop=/boot/iso/systemrescuecd-x86-3.7.1.iso scandelay=1 setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "Boot exising Linux OS installed on the disk (64bit kernel)" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/isolinux/rescue64 root=auto initrd (loop)/isolinux/initram.igz } menuentry "MemTest+" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux16 (loop)/bootdisk/memtestp } menuentry "NT Password Editor" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux (loop)/ntpasswd/vmlinuz initrd (loop)/ntpasswd/initrd.cgz } menuentry "Gag" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux16 (loop)/isolinux/memdisk initrd16 (loop)/bootdisk/gag.img } menuentry "MHDD" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux16 (loop)/isolinux/memdisk initrd16 (loop)/bootdisk/mhdd.img } menuentry "Hardware Detection Tool" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux16 (loop)/isolinux/memdisk initrd16 (loop)/bootdisk/hdt.img } menuentry "Aida" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux16 (loop)/isolinux/memdisk initrd16 (loop)/bootdisk/aida.img } menuentry "FreeDOS" { loopback loop /boot/iso/systemrescuecd-x86-3.7.1.iso linux16 (loop)/isolinux/memdisk initrd16 (loop)/bootdisk/freedos.img } menuentry "Boot from HDD" { exit } menuentry "Reboot" { reboot } |
Все, можно перезагружаться.
P.S. SystemRescueCD можно сконфигурировать так, чтобы настройки не сбрасывались при перезагрузке, но, к сожалению, это не работает на NTFS 🙁