Включаю в конфиг ядра ТОЛЬКО опцию:
options GEOM_MIRROR
Собираю и устанавливаю его... и все система падает... при включении пишет что не может смонтировать корень системы и загрузится с него и выбивает
Trying to mount root from ufs:/dev/ada0p2 [rw]...
mountroot: waiting for device /dev/ada0p2...
Mounting from ufs:/dev/ada0p2 failed with error 19.
и ниже приглашение:
mountroot>
там я ввожу "?" для просмотра устройств к которым я могу попробовать смонтировать корень системы и загрузится: «gm0, ada0, ada1» но при попытке
ufs:/dev/ada0p2
или
ufs:/dev/gm0
результата нет пишет «error 19»Далее откатываюсь на старое ядро, сижу думаю где и что смотреть? собираю и устанавливаю ядро с конфигом по умолчанию(без опции GEOM_MIRROR) система работает, как только включаю опцию GEOM_MIRROR(посредством пересборки ядра или добавлением geom_mirror_load="YES" в Loader.conf результат один и тот же)... все падает.
uname -a
FreeBSD localhost 9.2-STABLE FreeBSD 9.2-STABLE #1 r265456: Sun May 11 15:16:35 UTC 2014 root@localhost:/usr/obj/usr/src/sys/GENERIC i386И еще.. каждый раз при включении вижу:
gptboot: invalid backup GPT headerБьюсь уже очень давно(когда есть время) но проблему решить еще так и не смог! буду очень благодарен человеку который поможет, выложу оперативно любую инфу о системе.
> options GEOM_MIRROR
> И еще.. каждый раз при включении вижу:
> gptboot: invalid backup GPT headerGPT использует под backup последние сектора диска.
GEOM_MIRROR тоже.
http://www.es.freebsd.org/doc/ru/books/handbook/geom-mirror....GEOM_MIRROR на весь диск не пройдет. Во-вторых это плохо и c MBR, если один диск
в зеркале выйдет из строя. Вам придется искать точно такой же для замены.
Делайте GEOM_MIRROR на отдельную патрицию.
>[оверквотинг удален]
>> И еще.. каждый раз при включении вижу:
>> gptboot: invalid backup GPT header
> GPT использует под backup последние сектора диска.
> GEOM_MIRROR тоже.
> http://www.es.freebsd.org/doc/ru/books/handbook/geom-mirror....
> GEOM_MIRROR на весь диск не пройдет. Во-вторых это плохо и c MBR,
> если один диск
> в зеркале выйдет из строя. Вам придется искать точно такой же для
> замены.
> Делайте GEOM_MIRROR на отдельную патрицию.Стоп.. Стоп.. может я что то не верно понимаю.. но смотрите я пробовал просто включить поддержку GMIRROR и все(пересобрав ядро или добави запись в loader.conf)... raid я даже не пробовал еще собирать, почему система перестает грузится мне не ясно.
>[оверквотинг удален]
>> http://www.es.freebsd.org/doc/ru/books/handbook/geom-mirror....
>> GEOM_MIRROR на весь диск не пройдет. Во-вторых это плохо и c MBR,
>> если один диск
>> в зеркале выйдет из строя. Вам придется искать точно такой же для
>> замены.
>> Делайте GEOM_MIRROR на отдельную патрицию.
> Стоп.. Стоп.. может я что то не верно понимаю.. но смотрите я
> пробовал просто включить поддержку GMIRROR и все(пересобрав ядро или добави запись
> в loader.conf)... raid я даже не пробовал еще собирать, почему система
> перестает грузится мне не ясно.uname -a
ядро
gpart show
в студию
>[оверквотинг удален]
>> http://www.es.freebsd.org/doc/ru/books/handbook/geom-mirror....
>> GEOM_MIRROR на весь диск не пройдет. Во-вторых это плохо и c MBR,
>> если один диск
>> в зеркале выйдет из строя. Вам придется искать точно такой же для
>> замены.
>> Делайте GEOM_MIRROR на отдельную патрицию.
> Стоп.. Стоп.. может я что то не верно понимаю.. но смотрите я
> пробовал просто включить поддержку GMIRROR и все(пересобрав ядро или добави запись
> в loader.conf)... raid я даже не пробовал еще собирать, почему система
> перестает грузится мне не ясно.
uname -a
FreeBSD localhost 9.2-STABLE FreeBSD 9.2-STABLE #3 r265456: Thu May 15 19:26:41 UTC 2014 root@localhost:/usr/obj/usr/src/sys/GENERIC i386gpart show
=> 34 976773101 ada0 GPT (465G) [CORRUPT]
34 6 - free - (3.0k)
40 128 1 freebsd-boot (64k)
168 966786936 2 freebsd-ufs (461G)
966787104 8388608 3 freebsd-swap (4.0G)
975175712 1597423 - free - (780M)
>[оверквотинг удален]
> 40
> 128 1
> freebsd-boot (64k)
> 168 966786936
> 2 freebsd-ufs (461G)
> 966787104 8388608 3
> freebsd-swap (4.0G)
> 975175712 1597423
> - free - (780M)
>
ядро то где?
что в loader.conf
>[оверквотинг удален]
>> freebsd-boot (64k)
>> 168 966786936
>> 2 freebsd-ufs (461G)
>> 966787104 8388608 3
>> freebsd-swap (4.0G)
>> 975175712 1597423
>> - free - (780M)
>>
> ядро то где?
> что в loader.confНужен конфиг ядра если я верно понял?
#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ke...
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD: stable/9/sys/i386/conf/GENERIC 263509 2014-03-21 17:56:32Z dim $cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
ident GENERICmakeoptions DEBUG=-gdwarf-2 # Build kernel with gdb(1) debug symbols
makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace supportoptions SCHED_ULE # ULE scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options TCP_OFFLOAD # TCP offload
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options QUOTA # Enable disk quotas for UFS
options MD_ROOT # MD is a potential root device
options NFSCL # New Network Filesystem Client
options NFSD # New Network Filesystem Server
options NFSLOCKD # Network Lock Manager
options NFS_ROOT # NFS usable as /, requires NFSCL
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_RAID # Soft RAID functionality.
options GEOM_LABEL # Provides labelization
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options COMPAT_FREEBSD7 # Compatible with FreeBSD7
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
options AUDIT # Security event auditing
options MAC # TrustedBSD MAC Framework
options KDTRACE_HOOKS # Kernel DTrace hooks
options INCLUDE_CONFIG_FILE # Include this file in kernel
options KDB # Kernel debugger related code
options KDB_TRACE # Print a stack trace for a panic
options DDB_CTF # kernel ELF linker loads CTF data# To make an SMP kernel, the next two lines are needed
options SMP # Symmetric MultiProcessor Kernel
device apic # I/O APIC# CPU frequency control
device cpufreq# Bus support.
device acpi
device eisa
device pci# Floppy drives
device fdc# ATA controllers
device ahci # AHCI-compatible SATA controllers
device ata # Legacy ATA/SATA controllers
options ATA_CAM # Handle legacy controllers with CAM
options ATA_STATIC_ID # Static device numbering
device mvs # Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA
device siis # SiliconImage SiI3124/SiI3132/SiI3531 SATA# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device esp # AMD Am53C974 (Tekram DC-390(T))
device hptiop # Highpoint RocketRaid 3xxx series
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adaptersdevice adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adaptersdevice ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
device isci # Intel C600 SAS controller# ATA/SCSI peripherals
device scbus # SCSI bus (required for ATA/SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct ATA/SCSI access)
device ses # Enclosure Services (SES and SAF-TE)
#device ctl # CAM Target Layer# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device hptnr # Highpoint DC7280, R750
device hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
device hpt27xx # Highpoint RocketRAID 27xx
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
device tws # LSI 3ware 9750 SATA+SAS 6Gb/s RAID controller# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device aacraid # Adaptec by PMC RAID
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mousedevice kbdmux # keyboard multiplexer
device vga # VGA video card driver
options VESA # Add support for VESA BIOS Extensions (VBE)device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO console
device sc
options SC_PIXEL_MODE # add support for the raster text modedevice agp # support several AGP chipsets
# Power management support (see NOTES for more options)
#device apm
# Add suspend/resume support for the i8254.
device pmtimer# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) bus# Serial (COM) ports
device uart # Generic UART driver# Parallel port
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and dadevice puc # Multi I/O cards and multi-channel UARTs
# PCI Ethernet NICs.
device bxe # Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
device de # DEC/Intel DC21x4x (``Tulip'')
device em # Intel PRO/1000 Gigabit Ethernet Family
device igb # Intel PRO/1000 PCIE Server Gigabit Family
device ixgb # Intel PRO/10GbE Ethernet Card
device le # AMD Am7900 LANCE and Am79C9xx PCnet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device txp # 3Com 3cR990 (``Typhoon'')
device vx # 3Com 3c590, 3c595 (``Vortex'')# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device ae # Attansic/Atheros L2 FastEthernet
device age # Attansic/Atheros L1 Gigabit Ethernet
device alc # Atheros AR8131/AR8132 Ethernet
device ale # Atheros AR8121/AR8113/AR8114 Ethernet
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device cas # Sun Cassini/Cassini+ and NS DP83065 Saturn
device dc # DEC/Intel 21143 and various workalikes
device et # Agere ET1310 10/100/Gigabit Ethernet
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device gem # Sun GEM/Sun ERI/Apple GMAC
device hme # Sun HME (Happy Meal Ethernet)
device jme # JMicron JMC250 Gigabit/JMC260 Fast Ethernet
device lge # Level 1 LXT1001 gigabit Ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nfe # nVidia nForce MCP on-board Ethernet
device nge # NatSemi DP83820 gigabit Ethernet
#device nve # nVidia nForce MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100 (precedence over 'le')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (``Starfire'')
device sge # Silicon Integrated Systems SiS190/191
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 ``EPIC'')
device vge # VIA VT612x gigabit Ethernet
device vr # VIA Rhine, Rhine II
device vte # DM&P Vortex86 RDC R6040 Fast Ethernet
device wb # Winbond W89C840F
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet# Wireless NIC cards
device wlan # 802.11 support
options IEEE80211_DEBUG # enable debug msgs
options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's
options IEEE80211_SUPPORT_MESH # enable 802.11s draft support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros NICs
device ath_pci # Atheros pci/cardbus glue
device ath_hal # pci/cardbus chip support
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample # SampleRate tx rate control for ath
#device bwi # Broadcom BCM430x/BCM431x wireless NICs.
#device bwn # Broadcom BCM43xx wireless NICs.
device ipw # Intel 2100 wireless NICs.
device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs.
device iwn # Intel 4965/1000/5000/6000 wireless NICs.
device malo # Marvell Libertas wireless NICs.
device mwl # Marvell 88W8363 802.11n wireless NICs.
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.
device wpi # Intel 3945ABG wireless NICs.# Pseudo devices.
device loop # Network loopback
device random # Entropy device
options PADLOCK_RNG # VIA Padlock RNG
options RDRAND_RNG # Intel Bull Mountain RNG
device ether # Ethernet support
device vlan # 802.1Q VLAN support
device tun # Packet tunnel.
device pty # BSD-style compatibility pseudo ttys
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter# USB support
options USB_DEBUG # enable debug msgs
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device xhci # XHCI PCI->USB interface (USB 3.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices (needs netgraph)
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device urio # Diamond Rio 500 MP3 player
# USB Serial devices
device u3g # USB-based 3G modems (Option, Huawei, Sierra)
device uark # Technologies ARK3116 based serial adapters
device ubsa # Belkin F5U103 and compatible serial adapters
device uftdi # For FTDI usb serial adapters
device uipaq # Some WinCE based devices
device uplcom # Prolific PL-2303 serial adapters
device uslcom # SI Labs CP2101/CP2102 serial adapters
device uvisor # Visor and Palm devices
device uvscom # USB serial support for DDI pocket's PHS
# USB Ethernet, requires miibus
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB Ethernet
device udav # Davicom DM9601E USB
# USB Wireless
device rum # Ralink Technology RT2501USB wireless NICs
device run # Ralink Technology RT2700/RT2800/RT3000 NICs.
device uath # Atheros AR5523 wireless NICs
device upgt # Conexant/Intersil PrismGT wireless NICs.
device ural # Ralink Technology RT2500USB wireless NICs
device urtw # Realtek RTL8187B/L wireless NICs
device zyd # ZyDAS zd1211/zd1211b wireless NICs# Sound support
device sound # Generic sound driver (required)
device snd_cmi # CMedia CMI8338/CMI8738
device snd_csa # Crystal Semiconductor CS461x/428x
device snd_emu10kx # Creative SoundBlaster Live! and Audigy
device snd_es137x # Ensoniq AudioPCI ES137x
device snd_hda # Intel High Definition Audio
device snd_ich # Intel, NVidia and other ICH AC'97 Audio
device snd_uaudio # USB Audio
device snd_via8233 # VIA VT8233x Audio# VirtIO support
device virtio # Generic VirtIO bus (required)
device virtio_pci # VirtIO PCI Interface
device vtnet # VirtIO Ethernet device
device virtio_blk # VirtIO Block device
device virtio_scsi # VirtIO SCSI device
device virtio_balloon # VirtIO Memory Balloon deviceфайл loader.conf пуст.
>>[оверквотинг удален]ядро GENERIC
> файл loader.conf пуст.
значит у Вас просто испорчена альтернативная таблица GPT
В чем проблема то?
>>>[оверквотинг удален]
> ядро GENERIC
>> файл loader.conf пуст.
> значит у Вас просто испорчена альтернативная таблица GPT
> В чем проблема то?На системе уже настроен некий функционал просто(пусть не супер сложный но у меня уйдет много времени что бы все настроить заново).. и очень не хочется переустанавливать ее заново... я жду советы или примера как мне лучше сделать, могу с помощью dd например восстановить таблицу(только что бы не уложить все вообще))?
>>>>[оверквотинг удален]
>> ядро GENERIC
>>> файл loader.conf пуст.
>> значит у Вас просто испорчена альтернативная таблица GPT
>> В чем проблема то?
> На системе уже настроен некий функционал просто(пусть не супер сложный но у
> меня уйдет много времени что бы все настроить заново).. и очень
> не хочется переустанавливать ее заново... я жду советы или примера как
> мне лучше сделать, могу с помощью dd например восстановить таблицу(только что
> бы не уложить все вообще))?Вы бы еще рассказали:
- что делали?
- что хотите реализовать?ps. можно конечно и dd, но есть gpart recovery
>[оверквотинг удален]
>>> В чем проблема то?
>> На системе уже настроен некий функционал просто(пусть не супер сложный но у
>> меня уйдет много времени что бы все настроить заново).. и очень
>> не хочется переустанавливать ее заново... я жду советы или примера как
>> мне лучше сделать, могу с помощью dd например восстановить таблицу(только что
>> бы не уложить все вообще))?
> Вы бы еще рассказали:
> - что делали?
> - что хотите реализовать?
> ps. можно конечно и dd, но есть gpart recoveryПробовал настроить GMIRROR на каком этапе вышла загвоздка уже и не помню даже... после доперло что нужно пересобирать ядро и включить туда необходимый модуль, ядро пересобрал но нефига(уперся в GPT), а цель этого всего реализовать RAID1, честно даже уже запутался чуть чуть...
> Пробовал настроить GMIRROR на каком этапе вышла загвоздка уже и не помнювот почему GPT Corrupted
Как пытались создать зеркало?> даже... после доперло что нужно пересобирать ядро и включить туда необходимый
> модуль, ядро пересобрал но нефига(уперся в GPT), а цель этого всегонет необходимости пересобирать ядро, gmirror можно подгрузить как модуль
в /boot/loader.conf> реализовать RAID1, честно даже уже запутался чуть чуть...
Вы изучили материал по ранее данным ссылкам на блог Андрея Елсукова?
>> Пробовал настроить GMIRROR на каком этапе вышла загвоздка уже и не помню
> вот почему GPT Corrupted
> Как пытались создать зеркало?
>> даже... после доперло что нужно пересобирать ядро и включить туда необходимый
>> модуль, ядро пересобрал но нефига(уперся в GPT), а цель этого всего
> нет необходимости пересобирать ядро, gmirror можно подгрузить как модуль
> в /boot/loader.confЗнаю, просто пробовал два способа но результат в обоих случаях один и тот же.
>> реализовать RAID1, честно даже уже запутался чуть чуть...
> Вы изучили материал по ранее данным ссылкам на блог Андрея Елсукова?Да спасибо! почитал вроде почитал..
Чтобы исправить эту проблему нужно пересоздать таблицу разделов на зеркале. Сделать это можно следующим образом:
1.удалить один компонент из зеркала и уничтожить таблицу разделов на нём;
2.создать новое зеркало на этом диске и уже на нём создать таблицу разделов;
3.cоздать разделы и файловые системы, записать загрузочный код, выполнить dump+restore данных со старого зеркала на новое;
4.выполнить необходимые правки в /etc/fstab и /boot/loader.conf (если необходимо);
5.перезагрузиться с нового зеркала, после этого уничтожить старое зеркало, таблицу разделов на нём и подключить диск в новое зеркало.Первый пункт как я понял я пропускаю... так как raid-а у меня сейчас нет:
123@localhost:~ # gmirror list
gmirror: Command 'list' not available.
123@localhost:~ # gmirror status
gmirror: Command 'status' not available.
123@localhost:/ # ls /dev | grep ^g
geom.ctl
gptidВторой пункт мне немного неясен.. т.е я сейчас просто добавляю свои два винта(ada0 и ada1) в зеркало
gmirror label gm0 ada0 ada1
И дальше создаю на этом зеркале таблицу разделов:
gpart create -s gpt mirror/gm0
В третьем пункте мне не ясна сама логика.. я был уверен что при добавлении или замене в raid1 одного накопителя создание разделов, файловой системы, перенос данных с одного винчестера на другой полностью ложится на плечи gmirror.
>[оверквотинг удален]
> 2.создать новое зеркало на этом диске и уже на нём создать таблицу
> разделов;
> 3.cоздать разделы и файловые системы, записать загрузочный код, выполнить dump+restore
> данных со старого зеркала на новое;
> 4.выполнить необходимые правки в /etc/fstab и /boot/loader.conf (если необходимо);
> 5.перезагрузиться с нового зеркала, после этого уничтожить старое зеркало, таблицу разделов
> на нём и подключить диск в новое зеркало.
> Второй пункт мне немного неясен.. т.е я сейчас просто добавляю свои два
> винта(ada0 и ada1) в зеркало
> gmirror label gm0 ada0 ada1О расположении GPT на диске смотрите здесь:
http://en.wikipedia.org/wiki/GUID_Partition_TableЗапись gmirror label на /dev/ada0 и /dev/ada1 испортит Secondary GPT Header
на одном или обоих дисках.> И дальше создаю на этом зеркале таблицу разделов:
> gpart create -s gpt mirror/gm0Как будет работать начальная загрузка boot0 из под gmirror ?
Прочитайте здесь
http://bu7cher.blogspot.com/2011/05/freebsd.html> В третьем пункте мне не ясна сама логика.. я был уверен что
> при добавлении или замене в raid1 одного накопителя создание разделов, файловой
> системы, перенос данных с одного винчестера на другой полностью ложится на
> плечи gmirror.Надеюсь, Вам станет многое понятно, как только Вы разберетесь со 2 пунктом.
логика очень проста:geom пишет метаданные в последний сектор провайдера.
Раньше использовалась MBR и у нее не было копии в конце диска,
затем FreeBSD перешла на использование GPT, у которой в конце диска
хранится альтернативная копия и GEOM при загрузке проверяет наличие.- gmirror до GPT, можно было создавать для целых дисков, ибо проверки не было
и метаданные не разрушались.И тем не менее GEOM поправили на предмет проверки целостности и выбора
администратора, работать дальше или нет.В итоге есть два варианта использования gmirror в новых системах, где
GEOM_GPT by default:1) рекомендуется либо использовать MBR, либо зеркалить отдельные партиции
2) либо создать рейд - gmX, и затем уже его размечать через gpart и не обращать
внимания на:
"gptboot: invalid backup GPT header"Вариант 1) описан везде, например:
http://www.wonkity.com/~wblock/docs/html/gmirror.htmlвариант 2) описан у Елсукова.
Вы хотите имея уже установленную и настроенную систему, допустим на ada0,
создать зеркало используя gmirror состоящее из двух дисков:
ada0 == ada1 по варианту 2)имеем систему на ada0 и равный ему диск для зеркала ada1
- загружаем ядерный модуль gmirror
# gmirror load
- разрешаем писать в начальные сектора:
# sysctl kern.geom.debugflags=16
- создаем зеркало на втором, пустом диске ada1:
# gmirror label gm0 /dev/ada1
- создаем GPT, на провайдере gm0 (это самое важное!)
# gpart create -s gpt /dev/mirror/gm0
# gpart add -t freebsd-boot -l gptboot -s 128K /dev/mirror/gm0
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 /dev/mirror/gm0
# gpart add -t freebsd-ufs -l root -s 3G /dev/mirror/gm0
# gpart add -t freebsd-swap -l swap -s 4GB /dev/mirror/gm0
# gpart add -t freebsd-ufs -l tmp -s 4G /dev/mirror/gm0
# gpart add -t freebsd-ufs -l usr -s 30G /dev/mirror/gm0
# gpart add -t freebsd-ufs -l var -s 10G /dev/mirror/gm0
# gpart add -t freebsd-ufs -l home -s 10G /dev/mirror/gm0ну и тд и тп, верхнее проверьте на синтаксис и поправьте под себя размеры и лейблы,
если нужны.- смотрите партиции на gm(gmirror)
# gpart show /dev/mirror/gm0
- создаете FS:
# newfs /dev/mirror/gm0p2 (корень)
# newfs -U /dev/mirror/gm0p4 (tmp)
# newfs -U /dev/mirror/gm0p4 (tmp)
и тд, можете создавать с ufs-лейблом, например для корня (потом в /etc/fstab)# newfs -L root /dev/mirror/gm0p2
...Далее с вашего рабочего диска ada0 - выполняете dump/restore на созданные FS
для зеркала.
Если Вы монтировали корень зеркала в /mnt, то после того как все скопируете
на зеркало, правите fstab уже зеркала:# vi /mnt/etc/fstab (должно быть примерно так)
/dev/mirror/gm0p3 none swap sw 0 0
/dev/mirror/gm0p2 / ufs rw 1 1
/dev/mirror/gm0p4 /tmp ufs rw 2 2
/dev/mirror/gm0p5 /usr ufs rw 2 2
/dev/mirror/gm0p6 /var ufs rw 2 2
ну и тдсоздаете на зеркале файл /mnt/boot/loader.conf:
geom_mirror_load="YES"ну еще можете корень прописать через переменную vfs.root.mountfrom
Перегружаетесь - выставляя загрузку с ada1.
После того как загрузитесь уже с рейда из ОДНОГО ДИСКА, можете добавить
в него второй диск:# gmirror insert gm0 /dev/ada0
начнется синхронизация, смотрите статус, ждите пока закончится,
синхронизация будет идти на фоне работы системы.Все.
ps. Прочитайте у Елсукова, почему он советует монтировать по лейблам.
>[оверквотинг удален]
> ну еще можете корень прописать через переменную vfs.root.mountfrom
> Перегружаетесь - выставляя загрузку с ada1.
> После того как загрузитесь уже с рейда из ОДНОГО ДИСКА, можете
> добавить
> в него второй диск:
> # gmirror insert gm0 /dev/ada0
> начнется синхронизация, смотрите статус, ждите пока закончится,
> синхронизация будет идти на фоне работы системы.
> Все.
> ps. Прочитайте у Елсукова, почему он советует монтировать по лейблам.Спасибо! вы объяснили достаточно хорошо!! но некоторые моменты наверное я понимаю не верно:
т.е мне нужно сначало создать устройство gm0, затем я на нем создаю таблицу GPT с информацией о будущих разделах, затем я создаю сами разделы... если все это верно почему я не могу создать на устройстве gm0 просто один раздел(/) и туда установить систему, но меня просто на моем этапе интересует просто наиболее простой вариант который я смогу реализовать.
> # gpart create -s gpt /dev/mirror/gm0
> # gpart add -t freebsd-boot -l gptboot -s 128K /dev/mirror/gm0
> # gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 /dev/mirror/gm0
> # gpart add -t freebsd-ufs -l root -s 80G /dev/mirror/gm0
> # gpart add -t freebsd-swap -l swap -s 4GB /dev/mirror/gm0
> # gpart add -t freebsd-ufs -l tmp -s 100G /dev/mirror/gm0
> # gpart add -t freebsd-ufs -l usr -s 100G /dev/mirror/gm0
> # gpart add -t freebsd-ufs -l var -s 100G /dev/mirror/gm0
> # gpart add -t freebsd-ufs -l home -s 100G /dev/mirror/gm0Информации на сервере будет крайне мало, но имеет значение что бы в случае отказа одного винчестера она осталась на втором и система просто продолжала работать, поэтому под разделы я отдал все место, но мне не понятно почему везде устройство gm0 ?
>[оверквотинг удален]
>> начнется синхронизация, смотрите статус, ждите пока закончится,
>> синхронизация будет идти на фоне работы системы.
>> Все.
>> ps. Прочитайте у Елсукова, почему он советует монтировать по лейблам.
> Спасибо! вы объяснили достаточно хорошо!! но некоторые моменты наверное я понимаю не
> верно:
> т.е мне нужно сначало создать устройство gm0, затем я на нем создаю
> таблицу GPT с информацией о будущих разделах, затем я создаю сами
> разделы... если все это верно почему я не могу создать на
> устройстве gm0 просто один раздел(/) и туда установить систему,а где написано что Вы не можете создать один раздел?
Если можно создать несколько, значит уж точно можно создать один.> но меня
> просто на моем этапе интересует просто наиболее простой вариант который я
> смогу реализовать.# gpart create -s gpt /dev/mirror/gm0
# gpart add -t freebsd-boot -l gptboot -s 128K /dev/mirror/gm0
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 /dev/mirror/gm0
# gpart add -t freebsd-ufs -l root /dev/mirror/gm0устроит один корень без swap?
>> # gpart add -t freebsd-swap -l swap -s 4GB /dev/mirror/gm0
>> # gpart add -t freebsd-ufs -l tmp -s 100G /dev/mirror/gm0
>> # gpart add -t freebsd-ufs -l usr -s 100G /dev/mirror/gm0
>> # gpart add -t freebsd-ufs -l var -s 100G /dev/mirror/gm0
>> # gpart add -t freebsd-ufs -l home -s 100G /dev/mirror/gm0
> Информации на сервере будет крайне мало, но имеет значение что бы в
> случае отказа одного винчестера она осталась на втором и система просто
> продолжала работать, поэтому под разделы я отдал все место, но мне
> не понятно почему везде устройство gm0 ?Еще раз прочитайте по ссылке у Елсукова и обдумайте почему gmX и где будут
метаданные в случае если провайдером будет сырой диск ad0 или ada0 и
если провайдером будет gm0.
>[оверквотинг удален]
>>> # gpart add -t freebsd-ufs -l var -s 100G /dev/mirror/gm0
>>> # gpart add -t freebsd-ufs -l home -s 100G /dev/mirror/gm0
>> Информации на сервере будет крайне мало, но имеет значение что бы в
>> случае отказа одного винчестера она осталась на втором и система просто
>> продолжала работать, поэтому под разделы я отдал все место, но мне
>> не понятно почему везде устройство gm0 ?
> Еще раз прочитайте по ссылке у Елсукова и обдумайте почему gmX и
> где будут
> метаданные в случае если провайдером будет сырой диск ad0 или ada0 и
> если провайдером будет gm0.http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ge...
Вот нашел мануал(19.3.3) вроде ситуация 1 в 1 как у меня, но я не пойму# gmirror load
# diskinfo -v ada0 | head -n3
/dev/ada0
512 # sectorsize
500107862016 # mediasize in bytes (465G)# geom zero load
# gnop create -s 1000204821504 gzero
# gmirror label -v gm0 gzero.nop ada1 //на этом пункте пишет
//gmirror: Can't store metadata on ada1: Operation not permitted.
>[оверквотинг удален]
>>> случае отказа одного винчестера она осталась на втором и система просто
>>> продолжала работать, поэтому под разделы я отдал все место, но мне
>>> не понятно почему везде устройство gm0 ?
>> Еще раз прочитайте по ссылке у Елсукова и обдумайте почему gmX и
>> где будут
>> метаданные в случае если провайдером будет сырой диск ad0 или ada0 и
>> если провайдером будет gm0.
> http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ge...
> Вот нашел мануал(19.3.3) вроде ситуация 1 в 1 как у меня, но
> я не поймуПростите, Вы и не пытаетесь понять, а бездумно копируете примеры.
В handbooke "подтянули" описание создания зеркала посредством gmirror:
- написали про сохранение метаданных gpart на сыром диске
- написали про сохранение метаданных провайдера gmX при использовании gmirror
- написали почему для зеркалирования целых дисков используют MBR, связано
с сохранением метаданных и отсутствием копии MBR в отличие от GPT схемы
- написали про то что для зеркалирования необходим одинаковый размер
зеркалируемых объектов
...
...К сожалению ничего не написали про то что есть возможность зеркалирования
дисков с GPT, но более правильно - зеркалить отдельные партиции GPT.> # gmirror load
> # diskinfo -v ada0 | head -n3
> /dev/ada0
> 512
> # sectorsize
> 500107862016 # mediasize in bytes (465G)выше вывод diskinfo и размер Вашего диска в байтах: 500107862016 это ~465GB
В примере из Handbook данные по диску:[handbook]
# diskinfo -v ada0 | head -n3
/dev/ada0
512 # sectorsize
1000204821504 # mediasize in bytes (931G)
[/handbook]В Handbook'е как видим размер в байтах: 1000204821504 ~931GB
У Вас диск 465GB, а Вы создаете псевдодиск размером 931GB и затем пытаетесь
создать зеркало на основе псевдодиска который в два раза больше физического!По Handbook'у, предлагается создать пустой (gzero) псевдодиск (fake диск), посредством класса gnop, размером в точности совпадающем с ada0.
Это страховка, если вдруг ada1 чуть больше чем ada0, а если ada1 меньше
чем ada0, то зеркало не создать.- не забыть выставить флаг (чтобы можно было писать в первичные сектора):
# sysctl kern.geom.debugflags=16
- загрузили класс zero
> # geom zero load
я бы здесь добавил:
# geom nop load
# geom mirror loadзагрузить ядерные модули nop и mirror, ничего страшного если они уже загружены
- используя gnop, создали пустой провайдер gzero размером 1000204821504 байт
> # gnop create -s 1000204821504 gzero
- создать зеркало из gzero.gnop и ada1
> # gmirror label -v gm0 gzero.nop ada1 //на этом пункте
> пишет
>
> //gmirror: Can't store metadata on
> ada1: Operation not permitted.если все хорошо, то, поскольку gzero.gnop не содержит данных, то и не подсоединен
к зеркалу, а значит по команде:# gmirror forget gm0
все не подсоединенные к зеркалу провайдеры - отвалятся и останется только один
ada1 в gm0.Вот такое объяснение в Handbook, который надо прочитать и понять, а не копировать
бездумно.ps. Кроме gmirror, в форуме был расписан вариант RAID1 (зеркало) используя graid
>[оверквотинг удален]
> если все хорошо, то, поскольку gzero.gnop не содержит данных, то и не
> подсоединен
> к зеркалу, а значит по команде:
> # gmirror forget gm0
> все не подсоединенные к зеркалу провайдеры - отвалятся и останется только один
> ada1 в gm0.
> Вот такое объяснение в Handbook, который надо прочитать и понять, а не
> копировать
> бездумно.
> ps. Кроме gmirror, в форуме был расписан вариант RAID1 (зеркало) используя graidЯ пробую и понять тоже, ошибка в размере жесткого диска в предыдущем посте просто была скорее по невнимательности... да и с Unix системами я совсем не давно начал дружить, у меня система установлена в одном разделе...
Удачно сохраняю таблицу разделов со своего ada0
gpart backup ada0 > table.ada0Далее пробую восстановить ее
gpart restore mirror/gm0 < table.ada0В ответ:
gpart: geom 'mirror/gm0': File existsНа всякий случай попробовал
sysctl kern.geom.debugflags=16
и потом еще раз сохранить свою таблицу разделов на свой gm0 но без успешно, пишет что файл(устройство) уже существует и все, возможно решение очевидное.. но пока так и не понял в чем дело.
>[оверквотинг удален]
> gpart backup ada0 > table.ada0
> Далее пробую восстановить ее
> gpart restore mirror/gm0 < table.ada0
> В ответ:
> gpart: geom 'mirror/gm0': File exists
> На всякий случай попробовал
> sysctl kern.geom.debugflags=16
> и потом еще раз сохранить свою таблицу разделов на свой gm0 но
> без успешно, пишет что файл(устройство) уже существует и все, возможно решение
> очевидное.. но пока так и не понял в чем дело.тогда еще раз и все сначала, покажите вывод команд:
# uname -a
# kldstat
# camcontrol devlist
# diskinfo -v adaX | head -n 3 (вместо X номер диска и выполнить для каждого)
# gpart show
# cat /etc/fstab
# mount
# gmirror list
# gmirror status
>[оверквотинг удален]
> # uname -a
> # kldstat
> # camcontrol devlist
> # diskinfo -v adaX | head -n 3 (вместо X номер диска
> и выполнить для каждого)
> # gpart show
> # cat /etc/fstab
> # mount
> # gmirror list
> # gmirror status#uname -a
FreeBSD localhost 9.2-STABLE FreeBSD 9.2-STABLE #3 r265456: Thu May 15 19:26:41 UTC 2014 root@localhost:/usr/obj/usr/src/sys/GENERIC i386#kldstat
Id Refs Address Size Name
1 7 0xc0400000 1245098 kernel
2 1 0xc85a9000 15000 geom_mirror.ko
3 1 0xc85f1000 2000 geom_zero.ko
4 1 0xc85fb000 4000 geom_nop.ko#camcontrol devlist
<ST500DM002-1BD142 KC45> at scbus0 target 0 lun 0 (pass0,ada0)
<ST500DM002-1BD142 KC48> at scbus1 target 0 lun 0 (pass1,ada1)
#diskinfo -v ada0 | head -n 3
ada0
512 # sectorsize
500107862016 # mediasize in bytes (465G)
#diskinfo -v ada1 | head -n 3
ada1
512 # sectorsize
500107862016 # mediasize in bytes (465G)
#gpart show
=> 34 976773101 ada0 GPT (465G) [CORRUPT]
34 6 - free - (3.0k)
40 128 1 freebsd-boot (64k)
168 966786936 2 freebsd-ufs (461G)
966787104 8388608 3 freebsd-swap (4.0G)
975175712 1597423 - free - (780M)=> 63 976773104 mirror/gm0 MBR (465G)
63 976773104 - free - (465G)
#cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0p2 / ufs rw 1 1
/dev/ada0p3 none swap sw 0 0#mount
/dev/ada0p2 on / (ufs, local, soft-updates)
devfs on /dev (devfs, local, multilabel)#gmirror list
Geom name: gm0
State: COMPLETE
Components: 1
Balance: load
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 3935110014
Providers:
1. Name: mirror/gm0
Mediasize: 500107861504 (465G)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r0w0e0
Consumers:
1. Name: ada1
Mediasize: 500107862016 (465G)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: NONE
GenID: 0
SyncID: 1
ID: 2229523263#gmirror status
Name Status Components
mirror/gm0 COMPLETE ada1 (ACTIVE)
> #camcontrol devlist
> <ST500DM002-1BD142 KC45>
> at scbus0 target 0 lun 0 (pass0,ada0)
> <ST500DM002-1BD142 KC48>
> at scbus1 target 0 lun 0 (pass1,ada1)десктопные диски, да еще с кривым firmware под зеркало...
Если еще не передумали создать зеркало, пишите мне на email чтобы здесь не засорять.
>[оверквотинг удален]
> FreeBSD localhost 9.2-STABLE FreeBSD 9.2-STABLE #1 r265456: Sun May 11 15:16:35 UTC
> 2014 root@localhost:/usr/obj/usr/src/sys/GENERIC i386
>
> И еще.. каждый раз при включении вижу:
>
> gptboot: invalid backup GPT header
>
> Бьюсь уже очень давно(когда есть время) но проблему решить еще так и
> не смог! буду очень благодарен человеку который поможет, выложу оперативно любую
> инфу о системе.нужно было поискать, по ссылке самое полное описание Вашей проблемы и решение: