Halo a h-uile duine.
Artaigilean o chionn ghoirid air Habré
An toiseach, chuir mi romham an Elbrus OS a luchdachadh sìos, no an àite sin, dìreach an cuairteachadh a tha ri fhaighinn airson ailtireachd x86_64, faic mar a tha e ag obair, agus feuch ri Veeam Agent airson Linux a chuir a-steach air. Ma tha thu airson faighinn a-mach dè a thàinig a-mach à seo, feuch an toir thu sùil air cat.
Mar sin, gluasad beag, air eagal ‘s nach eil fios aig cuideigin. Tha "Elbrus" mar sin
Teàrnadh beag èiginneach eile. Is e an fhìrinn gun do dhèilig mi ri bathar-bog dachaigheil aon uair, leithid MSVS agus Baguette RTOS. Bha eòlas agam ag obair le co-phàirtean dachaigheil, a’ toirt a-steach pròiseasar bho MCST. Mar sin, is urrainn dhomh a ràdh le làn dhleastanas gu bheil sònrachas sònraichte san raon seo agus feuchaidh mi gun a bhith a’ bruidhinn air san artaigil. Nuair a tha mi dha-rìribh ag iarraidh, cuiridh mi an taga [TBD]. Mar sin feuchaidh sinn ri dhèanamh às aonais trolling gu tur agus gearan banal. Aig a 'cheann thall, feumar gnìomhachas dìon na Ruis agus buidhnean riaghaltais a thuigsinn. Dùthaich mhòr - buidseat beag.. [TBD].
Ìre neoni - luchdachadh sìos. Bu chòir a thoirt fa-near gun do dh’ adhbhraich an naidheachd gu bheil an Elbrus OS ri fhaighinn suathadh, cho mòr is gun deach am frithealaiche cuairteachaidh sìos. [TBD] Taing do Yandex agus an innleadair a smaoinich air a ghluasad ann. Mar sin tha an astar luchdachadh sìos math.
Tha a 'chiad ìre - stàladh. Chuir mi a-steach e air a’ chiad hypervisor a bha ri fhaighinn airson a chleachdadh an-asgaidh. Thug mi seachad dà chores, dhà no dhà de RAM, 32 MB airson bhidio (bidh eadar-aghaidh grafaigeach ann, shaoil mi). Tha an diosg mar as àbhaist - 32 GB.
Thòisich mi air an stàladh. Cha do chleachd mi an stiùireadh stàlaidh, agus mar sin chan urrainn dhomh beachd a thoirt air. Tha an eadar-aghaidh stàlaidh TUI gu math minimalistic.
Uill, sgoinneil, is urrainn dhuinn a dhèanamh gun luchag.
Stiùir mi an ath uinneag air an dàrna feuchainn. Carson nach tagh thu an inneal bunaiteach sr0 [TBD] nuair a bhios tu a’ stàladh on diosc?
Tagh an stòr CD-ROM agus gluais air adhart.
Fhad ‘s a bha mi a’ taghadh an raon ùine, thuig mi gu h-obann gu bheil an siostam a ’cleachdadh a’ phròiseas init boot, agus tha mi ag obair bho TTY0.
Ceart gu leòr, an uairsin leig dhuinn “Elbrus” a sheòrsachadh mar choimhearsnachd
Tha an còrr cha mhòr neo-chudromach: bidh sinn a 'cur a h-uile càil agus ag aontachadh. Air an t-slighe, gheibh sinn a-mach gu bheil an kernel air a chleachdadh 3.14.79-13.84. Hmm, bha 7 [TBD] aig Debian 3.2.
An uairsin, tagh an sgaradh diosc bunaiteach agus ... Chì sinn rabhadh:
Hmm, dòigh air choireigin cha do dhèilig an sgaradh fèin-ghluasadach gu math ri diosc 32 gig. Cha do dh’ atharraich mi an diosc; Chuir mi crìoch air a’ cheist le sgaradh diosc làimhe anns an stoidhle “uile-ann-aon”. B’ fheudar dhomh ext3 a stàladh, oir cha b’ urrainn do /boot a bhith ann an ext4.
Thàinig an siostam suas gun tachartas.
An dàrna ìre - lorg roghainnean eile.
Às deidh dhomh a dhol tro na tha san dàrna diosc, thuig mi gur e stòr a tha seo le barrachd. ann am pacaidean. Agus a’ coimhead air /etc/apt/sources.list, thuig mi gum feum e a bhith air a chuir suas ann an /mnt/cdrom. Ach cha do lorg mi /etc/os-release. Ach tha /etc/mcst-version leis an t-susbaint 3.0-rc36. Is dòcha gur e 3.0 an dreach - tha e coltach gu bheil e iomchaidh, ach rc36? San fharsaingeachd, tha e coltach nach bi bathar-bog treas-phàrtaidh comasach air an sgaoileadh seo aithneachadh anns an dòigh chlasaigeach.
Anns a 'bhun-roinn, bidh an eòlaire / mcst a' glacadh mo shùil, agus an sin, le cridhe a 'dol fodha, lorg mi / mcst / backup. Is e sin, tha inneal cùl-taic ann, agus tha e air a thogail a-steach don t-siostam! “Sgoinneil,” smaoinich mi, “chì sinn mar a tha seo ag obair!”
Thionndaidh e a-mach gu bheil sgriobt bash 4Kb / mcst/bin/backup a bheir seachad lethbhreac faidhle. Gu gnàthach - chun eòlaire / mcst/backup. Anns a’ chòd stòr bha dùil agam an àithne rsync fhaicinn, ach chan eil e san rèiteachadh bunaiteach. Tha an sgriobt dìreach a’ dèanamh lethbhreac de fhaidhlichean. Tha an àithne a’ coimhead rudeigin mar seo:
cp -rpdx <file backup> <file>
Tha am faidhle gu lèir /mcst/bin/backup an seoTha mi a’ toirt rabhadh dhut sa bhad nach eil an sgriobt seo leis fhèin gu leòr airson a làn thuigsinn. Bidh e a’ tarraing ghnìomhan bho / mcst/bin/source, rud a tha coltach ri leabharlann ghnìomhan. Cha do chuir mi a-steach e (44KB).
#!/bin/bash
unalias -a
set +vx
source $(dirname $0)/source
[[ $? != 0 ]] && exit 1
OPTIONS="hvcdrRil:L:"
usage()
{
echo "Usage: $PROG_NAME [-$OPTIONS] [backup]"
echo " h - this help"
echo " v vv vvv - verbose, very verbose, extremly verbose"
echo " c - create backup"
echo " d - diffs backup and system"
echo " r - recovery system"
echo " R - remove backup"
echo " i - prompt before backup removing"
echo " l list - additional backup files list"
echo " L list - global backup files list"
echo " backup - backup directory, default /mcst/backup/backup"
}
init_prog()
{
typeset flg=0
while getopts $OPTIONS opt
do
case $opt in
h ) usage; exit 0;;
v ) (( verbose = verbose + 1 )); set_verbose;;
c ) flg=1; c_flg=1;;
d ) flg=1; d_flg=1;;
r ) flg=1; r_flg=1;;
R ) flg=1; R_flg=1;;
i ) i_flg=1;;
l ) l_flg=1; list_arg="$list_arg $OPTARG";;
L ) L_flg=1; LIST_arg="$LIST_arg $OPTARG";;
* ) usage "Invalid option"; exit 1;;
esac
done
set_verbose
check_su
init_variables
shift $((OPTIND-1))
if (( $# > 1 ))
then
echo_fatal "invalid arguments number, exp 0|1, act $#"
exit 1
fi
[[ $# = 1 ]] && BACKUP=$1
echo "Backup directory is $BACKUP"
if [[ $L_flg = 1 ]]
then
backup_list="$LIST_arg"
elif [[ $c_flg != 1 && $R_flg != 1 ]]
then
get_output_cmd "cat $BACKUP/$BACKUP_LIST_NAME"
backup_list="$output_cmd"
else
get_output_cmd "get_backup_list"
backup_list="$output_cmd"
fi
if [[ $l_flg = 1 ]]
then
backup_list="$backup_list $list_arg"
fi
if [[ $flg = 0 ]]
then
if [[ -d $BACKUP ]]
then
ls -laR $BACKUP
else
echo_info "Cannot access $BACKUP"
fi
echo "backup_list=$backup_list"
exit 0
fi
### echo "Backup list: $backup_list"
}
create_file()
{
typeset f=$1 fr=$2
typeset fb
[[ -z $fr ]] && fr=$f
fb=${f#/}
fb=$BACKUP/$fb
xcmd="rm -rf $fb"
set_cmd "$xcmd"
run_cmd
xcmd="mkdir -p $fb"
set_cmd "$xcmd"
run_cmd
if [[ -a $fr ]]
then
xcmd="cp -rpdx $fr $fb/file"
set_cmd "$xcmd"
run_cmd
xcmd="touch $fb/create"
set_cmd "$xcmd"
run_cmd
else
xcmd="touch $fb/delete"
set_cmd "$xcmd"
run_cmd
fi
}
diff_file()
{
typeset f=$1
typeset fb
fb=${f#/}
fb=$BACKUP/$fb
if [[ -f $fb/delete ]]
then
echo_info "$f absent"
elif [[ -f $fb/create ]]
then
# echo "state: create $f"
if [[ ! -a $f ]]
then
echo_info "cannot access $f"
else
xcmd="diff -r $f $fb/file"
echo "$xcmd"
set_cmd "$xcmd" "" "0 1 2"
run_cmd
fi
else
echo_fatal "wrong $f backup"
exit 1
fi
}
recovery_file()
{
typeset f=$1
typeset fb
fb=${f#/}
fb=$BACKUP/$fb
if [[ ! -a $fb ]]
then
echo_fatal "cannot access $fb"
exit 1
fi
xcmd="rm -rf $f"
set_cmd "$xcmd"
run_cmd
if [[ -f $fb/delete ]]
then
:
elif [[ -f $fb/create ]]
then
xcmd="cp -rpdx $fb/file $f"
set_cmd "$xcmd"
run_cmd
else
echo_fatal "wrong $fb backup"
exit 1
fi
}
remove_backup()
{
echo "Remove backup"
if [[ ! -d $BACKUP ]]
then
echo_info "Cannot access $BACKUP"
return
fi
if [[ ! -f $BACKUP/$BACKUP_LIST_NAME ]]
then
echo_fatal "$BACKUP_LIST_NAME absent, remove backup manually"
exit 0
fi
answer=
if [[ $i_flg = 1 ]]
then
echo -n "Remove $BACKUP directory (yes/...)?"
read answer
else
answer=yes
fi
if [[ $answer = yes ]]
then
xcmd="rm -rf $BACKUP"
set_cmd "$xcmd"
run_cmd
fi
}
recovery_backup()
{
echo "Recovery system from $BACKUP"
for f in $backup_list
do
get_output_cmd "get_mount_point $f"
mnt=$output_cmd
get_output_cmd "is_ro_mounted $mnt"
mnt=$output_cmd
if [[ ! -z $mnt ]]
then
remount_rw_fs $mnt
fi
recovery_file $f
if [[ ! -z $mnt ]]
then
remount_ro_fs $mnt
fi
done
echo "The system is ready, reboot the system manually"
}
create_backup()
{
echo "Create backup"
xcmd="mkdir -pm0777 $BACKUP"
set_cmd "$xcmd"
run_cmd
for v in $backup_list
do
f=${v%%:*}
backup_list2="$backup_list2 $f"
fr=${v#*:}
create_file $f $fr
done
echo "$backup_list2" >$BACKUP/$BACKUP_LIST_NAME
}
diff_backup()
{
echo "Diffs system and backup"
if [[ ! -d $BACKUP ]]
then
echo_fatal "cannot access $BACKUP"
exit 1
fi
for f in $backup_list
do
diff_file $f
done
}
main()
{
typeset f mnt mnt_list answer
if [[ $R_flg = 1 ]]
then
remove_backup
fi
if [[ $r_flg = 1 ]]
then
recovery_backup
fi
if [[ $c_flg = 1 ]]
then
create_backup
fi
if [[ $d_flg = 1 ]]
then
diff_backup
fi
}
init_prog "$@"
main
exit 0
Ged, is dòcha nach do thuig mi rudeigin? Is dòcha gun urrainn dha cuideigin mìneachadh anns na beachdan: ciamar a tha an sgriobt seo a’ dèanamh cinnteach à cùl-taic dàta sàbhailte agus earbsach? [TBD]
rsync, co-dhiù, air a ghabhail a-steach san tuilleadan. tasgaidh. Tionndadh 3.1.3. Tha mi a’ smaoineachadh gu bheil cleachdadh rsync fhathast na roghainn eile nas fheàrr na an tagradh / mcst/bin/backup.
An ath rud, cho-dhùin mi fear ùr a chuir Veeam agent airson linux. Bidh cuideigin a’ faighneachd: “Dè a tha aig Veeam agus ionadachadh in-mhalairt ris?” Tha, chan eil e sa chlàr, ach tha e air a dhearbhadh le FSTEC, a tha a’ ciallachadh gun urrainnear a chleachdadh às aonais roghainnean eile. A 'cosg còig mionaidean deug air roghainnean eile bho
Ìre a trì - stàladh Veeam Agent airson Linux.
Mar sin, tha dà phacaid ann an Agent Veeam airson Linux: am modal kernel veeamsnap (co-dhiù,
Bha aon duilgheadas beag ann le stàladh a’ mhodal kernel - am pasgan dkms a bha a dhìth. Is e seo seirbheis a leigeas leat modalan kernel a thogail bhon stòr. Mar riaghailt, tha e ri fhaighinn air a h-uile sgaoileadh deb. B’ fheudar dhomh a luchdachadh sìos bho stòr deasbaid treas-phàrtaidh. Is e aon rud a thug toileachas dhomh nach eil am pasgan an urra ris an ailtireachd, agus mar sin tha e a’ freagairt air fear dùthchasach. Carson nach deach a thoirt a-steach don liosta de phasganan a bha rim faighinn, no an àite sin, nach deach a leasachadh [TBD]? Is dòcha gu bheilear den bheachd nach bu chòir do dhuine sam bith modalan kernel neo-MCST a thogail agus a ruith. Tha fìor eadar-dhealachadh an seo - leis gu bheil linux-headers ann. Is e sin, faodar am modal, ma thogras tu, a chruinneachadh le làimh agus a chuir air bhog le sgriobt nuair a thòisicheas an inneal. Tha mi a’ smaoineachadh nach bu chòir dùil a bhith agad ri ùrachaidhean tric bho MCST [TBD].
“Ceart gu leòr, tha am modal air a chuir a-steach - tha am pàirt as cruaidhe seachad,” shaoil mi... Tha am pasgan veeam airson an stòr deb airson an àrd-ùrlar amd64, agus tha àrd-ùrlar x86_64 [TBD] aig an Elbrus OS. Tha an eadar-dhealachadh, gu dearbh, anns an ainm a-mhàin, ach tha an eadar-dhealachadh seo a’ fàgail gu bheil cha mhòr a h-uile pasgan bho stòran deb treas-phàrtaidh neo-chòrdail ris an Elbrus OS. Faodar cuir às don mhì-thuigse neònach seo gu sìmplidh: dìreach cuir às don phacaid, ceartaich am fiosrachadh mun ailtireachd agus cuir air ais e ri chèile. Ciamar a dhèanamh
mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb
Is e duilgheadas eile eisimeileachd. Tha e coltach gu bheil na faidhlichean riatanach ann, ach chan eil na pacaidean. B’ e a’ bheachd gun robh ainmean nam pacaidean eadar-dhealaichte bho na “analogan a chaidh a thoirt a-steach”. Is dòcha gu bheil na leabharlannan air am pacadh ann an dòigh eadar-dhealaichte. Cha deach mi a-steach gu cus mion-fhiosrachaidh, thug mi air falbh cha mhòr a h-uile eisimeileachd, agus chaidh an stàladh air adhart.
An uairsin nochd duilgheadasan le còd tòiseachaidh na seirbheis. Bha an sgriobt /lib/init/vars.sh a dhìth. Airson adhbhar air choireigin, bidh Elbrus a’ riaghladh às aonais, agus mar sin bheir sinn air falbh e cuideachd. An ath rud, bha againn ri gnìomh toraidh na teachdaireachd a chuir na àite: bha na gnìomhan log_daemon_msg agus log_end_msg a dhìth. Às deidh dhomh rummaging timcheall anns an fhaidhle /lib/lsb/init-functions, lorg mi an gnìomh log_success_msg - bidh e math dhuinn airson deuchainnean. Co-dhiù, anns an fhaidhle /lib/lsb/init-functions tha an loidhne “# Source SuSE`s rc functions” aig toiseach an fhaidhle [TBD].
Às deidh a leithid de ghiollachd garbh den phacaid le faidhle, chaidh an cùl-taic inneal slàn air cuibhreann NFS a chuir air bhog gu soirbheachail. Bha an cùl-taic soirbheachail cuideachd. Mar sin, tha mi a’ creidsinn, airson taic a chumail ri inneal leis an Elbrus PDK, air a luchdachadh sìos “dìreach mar sin” gun dhleastanas sam bith, tha Veeam Agent airson Linux gu cinnteach freagarrach. Fiù 's an dèidh a h-uile mion-atharrachaidhean le faidhle.
Gu dearbh, chan eil taic fhoirmeil aig pasgan cuairteachaidh Elbrus OS, leis nach eil e air a ghabhail a-steach don liosta den fheadhainn le taic. A bharrachd air an sin, cha deach Veeam Agent airson Linux a dhearbhadh air leis an roinn QA, mar sin iadsan. chan eil taic ann (co-dhiù aig àm foillseachaidh an artaigil).
Tha mi an dòchas gum bi an artaigil feumail dhaibhsan a tha a’ feuchainn ri òrdugh Àireamh 334 de 29.06.2017 Ògmhios, XNUMX a chuir an gnìomh. Mèinn dhut... [TBD].
Source: www.habr.com