Helo pawb
Erthyglau diweddar ar Habré
Yn gyntaf oll, penderfynais lawrlwytho'r Elbrus OS, neu yn hytrach, dim ond y dosbarthiad sydd ar gael ar gyfer pensaernïaeth x86_64, gweld sut mae'n gweithio, a cheisio gosod Asiant Veeam ar gyfer Linux arno. Os ydych chi eisiau gwybod beth ddaeth allan o hyn, gwelwch cath.
Felly, gwyriad bach, rhag ofn nad yw rhywun yn gwybod. Mae "Elbrus" felly
Enciliad gorfodol bach arall. Y ffaith yw fy mod unwaith yn delio â meddalwedd domestig, megis MSVS a Baguette RTOS. Cefais brofiad o weithio gyda chydrannau domestig, gan gynnwys prosesydd o MCST. Felly, gallaf ddweud â chyfrifoldeb llawn fod yna benodolrwydd penodol yn y maes hwn a byddaf yn ceisio peidio â chyffwrdd ag ef yn yr erthygl. Pan fyddaf wir eisiau, byddaf yn rhoi'r tag [TBD]. Felly byddwn yn ceisio gwneud heb trolio llwyr a chwyno banal. Yn y diwedd, mae angen deall diwydiant amddiffyn Rwsia ac asiantaethau'r llywodraeth. Gwlad fawr - cyllideb fach.. [TBD].
Cam sero - llwytho i lawr. Mae'n werth nodi bod y newyddion bod yr AO Elbrus wedi dod ar gael wedi achosi cyseiniant, cymaint nes i'r gweinydd dosbarthu ostwng. [TBD] Diolch i Yandex a'r peiriannydd a feddyliodd am ei symud yno. Felly mae'r cyflymder lawrlwytho yn dda.
Cam cyntaf - gosod. Fe'i gosodais ar y hypervisor cyntaf a oedd ar gael i'w ddefnyddio am ddim. Dyrannais ddau graidd, cwpl o gigs o RAM, 32 MB ar gyfer fideo (bydd rhyngwyneb graffigol, meddyliais). Mae'r ddisg fel arfer - 32 GB.
Dechreuais y gosodiad. Ni ddefnyddiais y cyfarwyddiadau gosod, felly ni allaf wneud sylwadau arno. Mae rhyngwyneb gosod TUI yn finimalaidd iawn.
Wel, gwych, gallwn ni wneud heb lygoden.
Rheolais y ffenestr nesaf ar yr ail gynnig. Beth am ddewis y ddyfais rhagosodedig sr0 [TBD] wrth osod o ddisg?
Dewiswch y ffynhonnell CD-ROM a symud ymlaen.
Wrth ddewis y parth amser, sylweddolais yn sydyn bod y system yn defnyddio'r broses init boot, ac rwy'n gweithio o TTY0.
Iawn, yna gadewch i ni ddosbarthu “Elbrus” fel cymuned
Mae'r gweddill bron yn ddibwys: rydyn ni'n rhoi popeth ac yn cytuno. Ar hyd y ffordd, rydym yn darganfod bod y cnewyllyn yn cael ei ddefnyddio 3.14.79-13.84. Hmm, roedd gan Debian 7 3.2 [TBD].
Nesaf, dewiswch y rhaniad disg rhagosodedig a... Rydym yn gweld rhybudd:
Hmm, rywsut nid oedd y rhaniad awtomatig yn ymdopi'n dda â disg 32 gig. Wnes i ddim newid y ddisg; cwblheais y cwest gyda rhaniad disg â llaw yn yr arddull “pob-yn-un”. Roedd yn rhaid i mi osod ext3, oherwydd ni allai /boot fod yn ext4.
Daeth y system i fyny heb ddigwyddiad.
Ail gam - chwilio am ddewisiadau eraill.
Ar ôl chwilota trwy gynnwys yr ail ddisg, sylweddolais fod hon yn ystorfa gydag ychwanegol. mewn pecynnau. Ac wrth edrych ar /etc/apt/sources.list, sylweddolais fod angen ei osod yn /mnt/cdrom. Ond wnes i ddim dod o hyd i /etc/os-release. Ond mae /etc/mcst-version gyda'r cynnwys 3.0-rc36. Mae'n debyg mai 3.0 yw'r fersiwn - mae'n ymddangos ei fod yn ffitio, ond rc36? Yn gyffredinol, mae'n debygol na fydd meddalwedd trydydd parti yn gallu adnabod y dosbarthiad hwn yn y ffordd glasurol.
Yn y rhaniad gwraidd, mae'r cyfeiriadur / mcst yn dal fy llygad, ac yno, gyda chalon suddo, darganfyddais /mcst/backup. Hynny yw, mae yna offeryn wrth gefn, ac mae wedi'i ymgorffori yn y system! “Gwych,” meddyliais, “Gadewch i ni weld sut mae hyn yn gweithio!”
Daeth i'r amlwg bod sgript bash 4Kb / mcst/bin/backup sy'n darparu copïo ffeil. Yn ddiofyn - i'r cyfeiriadur /mcst/wrth gefn. Yn y cod ffynhonnell roeddwn i'n disgwyl gweld y gorchymyn rsync, ond nid yw yn y ffurfweddiad rhagosodedig. Yn syml, mae'r sgript yn copïo ffeiliau. Mae'r gorchymyn yn edrych fel hyn:
cp -rpdx <file backup> <file>
Mae'r ffeil gyfan /mcst/bin/backup ymaRwy'n eich rhybuddio ar unwaith nad yw'r sgript hon yn unig yn ddigon i'w deall yn llawn. Mae'n tynnu swyddogaethau o /mcst/bin/source, sy'n rhywbeth fel llyfrgell o swyddogaethau. Wnes i ddim ei gynnwys (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
Er, efallai nad oeddwn yn deall rhywbeth? Efallai y gall rhywun esbonio yn y sylwadau: sut mae'r sgript hon yn sicrhau copi wrth gefn o ddata diogel a dibynadwy? [TBD]
rsync, gyda llaw, wedi'i gynnwys yn yr ychwanegiad. storfeydd. Fersiwn 3.1.3. Rwy'n meddwl bod defnyddio rsync yn ddewis gwell o hyd i'r cymhwysiad /mcst/bin/backup.
Nesaf, penderfynais roi un ffres Asiant Veeam ar gyfer Linux. Bydd rhywun yn gofyn: “Beth sydd a wnelo Veeam ac amnewid mewnforio ag ef?” Ydy, nid yw yn y gofrestr, ond mae wedi'i ardystio gan FSTEC, sy'n golygu y gellir ei ddefnyddio yn absenoldeb dewisiadau eraill. Treulio pymtheg munud ar ddewisiadau amgen o
Cam Tri — gosod Asiant Veeam ar gyfer Linux.
Felly, mae Asiant Veeam ar gyfer Linux yn cynnwys dau becyn: y modiwl cnewyllyn veeamsnap (gyda llaw,
Roedd un broblem fach gyda gosod y modiwl cnewyllyn - y pecyn dkms coll. Mae hwn yn wasanaeth sy'n eich galluogi i adeiladu modiwlau cnewyllyn o'r ffynhonnell. Fel rheol, mae ar gael ar bob dosbarthiad deb. Roedd yn rhaid i mi ei lawrlwytho o ystorfa dadleuol trydydd parti. Un peth a'm gwnaeth yn hapus yw nad yw'r pecyn yn dibynnu ar y bensaernïaeth, felly mae'n cyd-fynd fel un brodorol. Pam na chafodd ei gynnwys yn y rhestr o becynnau sydd ar gael, neu yn hytrach, heb ei ddatblygu [TBD]? Efallai y rhagdybir na ddylai unrhyw un adeiladu a rhedeg unrhyw fodiwlau cnewyllyn nad ydynt yn MCST. Mae gwir anghysondeb yma - gan fod penawdau linux. Hynny yw, gellir cydosod y modiwl, os dymunir, â llaw a'i lansio â sgript pan fydd y peiriant yn cychwyn. Rwy'n credu na ddylech ddisgwyl diweddariadau aml gan MCST [TBD].
“Iawn, mae'r modiwl wedi'i osod - mae'r rhan anoddaf drosodd,” meddyliais... Mae'r pecyn veeam ar gyfer y storfa deb ar gyfer y platfform amd64, ac mae gan yr Elbrus OS blatfform x86_64 [TBD]. Mae'r gwahaniaeth, wrth gwrs, yn yr enw yn unig, ond mae'r gwahaniaeth hwn yn gwneud bron pob pecyn o ystorfeydd deb trydydd parti yn anghydnaws â'r Elbrus OS. Gellir dileu'r camddealltwriaeth annifyr hwn yn syml: dadosodwch y pecyn, cywiro'r wybodaeth am y bensaernïaeth a'i rhoi yn ôl at ei gilydd. Sut i wneud hynny
mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb
Problem arall yw dibyniaethau. Mae'n ymddangos bod y ffeiliau angenrheidiol yno, ond nid yw'r pecynnau. Yr argraff oedd bod enwau'r pecynnau yn wahanol i'w “analogau wedi'u mewnforio”. Efallai bod y llyfrgelloedd wedi'u pecynnu'n wahanol. Wnes i ddim mynd i ormod o fanylion, dileu bron pob un o'r dibyniaethau, ac aeth y gosodiad yn ei flaen.
Yna daeth problemau i'r amlwg gyda chod cychwyn y gwasanaeth. Roedd y sgript /lib/init/vars.sh ar goll. Am ryw reswm, mae Elbrus yn ymdopi hebddo, felly byddwn ni'n ei ddileu hefyd. Nesaf, roedd yn rhaid i ni ddisodli'r swyddogaeth allbwn neges: roedd y swyddogaethau log_daemon_msg a log_end_msg ar goll. Ar ôl chwilota o gwmpas yn y ffeil /lib/lsb/init-functions, darganfyddais y swyddogaeth log_success_msg - bydd yn dda i ni ar gyfer arbrofion. Gyda llaw, yn y ffeil /lib/lsb/init-functions mae'r llinell “# Source SuSE`s rc functions” ar ddechrau'r ffeil [TBD].
Ar ôl prosesu'r pecyn yn fras gyda ffeil, lansiwyd copi wrth gefn y peiriant cyfan ar y gyfran NFS yn llwyddiannus. Roedd y mownt wrth gefn hefyd yn llwyddiannus. Felly, ar gyfer gwneud copi wrth gefn o beiriant gyda'r Elbrus PDK, wedi'i lawrlwytho “yn union fel hynny” heb unrhyw rwymedigaethau, mae Asiant Veeam ar gyfer Linux yn bendant yn addas. Hyd yn oed ar ôl yr holl addasiadau gyda ffeil.
Wrth gwrs, nid yw pecyn dosbarthu Elbrus OS yn cael ei gefnogi'n ffurfiol, gan nad yw wedi'i gynnwys yn y rhestr o rai a gefnogir. Yn ogystal, ni chafodd Veeam Asiant ar gyfer Linux ei brofi arno gan yr adran SA, felly y rheini. nid oes unrhyw gefnogaeth (o leiaf adeg cyhoeddi'r erthygl).
Rwy'n gobeithio y bydd yr erthygl yn ddefnyddiol i'r rhai sy'n ceisio gweithredu gorchymyn Rhif 334 o Fehefin 29.06.2017, XNUMX. Fy un i i chi... [TBD].
Ffynhonnell: hab.com