صفحه 3 از 3 اولاول 123
نمایش نتایج 81 تا 107 از 107

نام تاپیک: چیزهای تازه ای که هر روز یاد میگیرم.

  1. #81
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    304

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    خیلی عالی بود ، لطفا ادامه بدید.

  2. #82
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    304

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    پیدا کردن مدل cpu

    grep "model name" /proc/cpuinfo

  3. #83

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    برای اینکه تمام پروسس های متعلق به خودتون رو ببندید :

    kill -9 -1
    بعد از این کار تمام پروسس ها ( که محیط گرافیکی هم شاملش میشه) بسته میشن و به صفحه‌ی لوگین میرید.

  4. #84
    کاربر دائمی آواتار saeedIRHA
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    Eclipse
    سن
    38
    پست
    605

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    دوستانی که با Terminal در لینوکس زیاد کار می‌کنن و همیشه چندتا صفحهٔ Terminal رو باز دارن پیشنهاد می‌کنم حتما از برنامهٔ زیر استفاده کنن:
    Terminator
    http://www.tenshu.net/terminator/

    installation in ubuntu
    =============

    sudo apt-get install terminator

  5. #85

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    تازگیا به برنامه نویسی داخل لینوکس علاقه پیدا کردم که ببینم چطور میشه باهاش کار کرد. همیشه دنبال توضیحات lib ها و چیزای دیگه زبان C و خود لینوکس بودم تا ببینم چطور میشه دیدشون. بعد فهمیدم اینطوری باید عمل کرد:

    man stdio


    کافیه بعد از کلمه man اسم فایل کتابخونه‌ای رو که میخواین بنویسید تا من‌پیجش رو کامل داخل ترمینال ببینید. اطلاعات جالبی بهتون میده که چه تابعی داخل این کتابخونست و کارش چیه. البته برای هر تابع هم میتونین از من استفاده کنید که شکل کلی و توضیحاتش رو میده مثل:
    man printf


    بعد هم کتابخونه libc کار گنو هست که توابع زبان سی رو در خودش داره و نیازه. اینطوری میشه بهش دسترسی داشت:

    info libc


    با اینها نزدیک به ۶۰ تا ۷۰٪ نیازها رفع میشه.

    برای دونستن استانداردهای کدنویسی GNU درباره‌ی سوئیچ های خط فرمان و اطلاعاتی راجع به نوشتن برنامه در خط فرمان و استانداردهایی که بقیه رعایت کردن رو هم با تایپ این دستور در خط فرمان ببینید:

    info "(standards)user interfaces"

  6. #86
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    اختصاص IP به کاربر های مختلف در لینوکس.
    در بعضی شرایط نیاز پیدا میشه که هر User در لینوکس از یک IP برای Application های خود استفاده کنه که این امکان را میشه با دستور زیر ایجاد کرد.

    iptables -t nat -A POSTROUTING -m owner --uid-owner user1 -j SNAT --to x.x.x.1



    بعد از تنظیمات Firewall هر Application که تحت user1 اجرا شود از x.x.x.1 خروجی خواهد داشت.

    موفق باشید

  7. #87
    کاربر دائمی آواتار MSK
    تاریخ عضویت
    تیر 1383
    محل زندگی
    فعلا تهران - بعدا خدا می‌دونه!
    پست
    331

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    یک برنامه جالب هم برای کارکردن با ترمینال توی محیط KDE برنامه yakuake است که یک کنسول مانند کنسول بازی quake در اختیار می گزارد که خیلی مفید است.

    چند تا دستور جالب هم که امروز یاد گرفتم برای تکرار دستورات قبلی:

    تکرار آخرین دستور:
    !!


    تکرار آخرین دستور command با همان آرگومنت ها:
    !command


    اجرای nامین دستور در history:
    !n


    اجرای nامین دستور از آخر:
    !-n


    و در آخر هم اجرای دستور با استفاده از آرگومنتهایی که در دستور آخر استفاده کرده اید:
    command !*


    موفق باشید.

  8. #88
    کاربر دائمی آواتار MSK
    تاریخ عضویت
    تیر 1383
    محل زندگی
    فعلا تهران - بعدا خدا می‌دونه!
    پست
    331

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    دستور dict رو من تازه امروز دیدم و واقعا حال کردم:
    dict کلمه


    توی ۷-۸ تا دیکشنری آنلاین سرچ می کنه و معنای کلمه رو پیدا می کنه.
    فقط ایکاش به فارسی هم داشت.

  9. #89
    کاربر دائمی آواتار saeedIRHA
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    Eclipse
    سن
    38
    پست
    605

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    یک rule ساده برای iptable برای مقابل با حملات Bruteforce SSH:

    # SSH Brute Force Protection
    iptables -A INPUT -i eth1 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
    iptables -A INPUT -i eth1 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP



    این script رو به فایل etc/rc.local/ اضافه کنید که هربار موقهٔ boot شدن اجرا بشه;
    بجای eth1 اسم device رو بذارین که connection‌ هاتون با اون بر قراره مثلا eth0 یا wlan0 و ....

  10. #90

    Question نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    نقل قول نوشته شده توسط tux-world مشاهده تاپیک
    دستور wget واقعا شیرین ترین دستوری هستش که وقتی کانکت میشم بهم حال میده.
    چند ماه پیش داشتم برای دانلود کامل سایت هزاردستان اینترنت رو می گشم . اون سایت مقاله های جالبی داره می خواستم کلا دانلود کنم بشینم بخونم .
    با سلام
    دو تا سوال
    ۱) محل ذخیره سایتو نگفتی؟۲) چرا روی بعضی از سایتا جواب نمیده؟

  11. #91
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    نقل قول نوشته شده توسط zxmr71 مشاهده تاپیک
    با سلام
    دو تا سوال
    ۱) محل ذخیره سایتو نگفتی؟۲) چرا روی بعضی از سایتا جواب نمیده؟
    توی دایرکتوری جاری کل مسیر سایت رو میسازه.
    خیلی از سایت ها نیاز به گزینه های اضافه مثل --referer دارند.

  12. #92

    parse کردن اطلاعات صفحه html

    من یه اسکریپت دارم که به صورت cronjob هرچند روز یکبار تعدادی از صفحات یه وبسایت رو میگیره و اطلاعات خاصی رو از اون استخراج میکنه.یک نمونه از نمایش صفحات این سایت روی مرورگر :

    Last update IP address Port Country Speed Connection time Type Anonymity
    31 secs 54.251.150.200 80 flag United States HTTP Low
    2 minutes 173.213.113.111 3128 flag United States HTTPS High +KA
    2 minutes 94.209.12.29 80 flag Netherlands HTTP High +KA
    3 minutes 89.32.230.98 8080 flag Moldova, Republic of HTTPS High +KA
    4 minutes 118.96.127.10 3128 flag Indonesia HTTP Low
    4 minutes 125.39.68.130 80 flag China HTTPS High +KA
    5 minutes 115.127.29.178 3128 flag Bangladesh HTTPS High +KA
    5 minutes 218.29.154.54 8000 flag China HTTPS High +KA

    اسکریپت ۴ فیلد رو استخراج و پردازش میکنه.فیلد ip مربوط اولین رکورد(54.251.150.200) در فایل html
    به صورت زیر است :

    .xn4v{display:none}
    .CHZv{display:inline}
    .WJIS{display:none}
    .R1oQ{display:inline}
    .Qp8o{display:none}
    .KEYK{display:inline}
    .R_Ad{display:none}
    .XUdT{display:inline}
    </style><span class="XUdT">54</span><span style="display:none">61</span><div style="display:none">61</div><div style="display:none">131</div><span style="display:none">177</span><span class="R_Ad">177</span><span></span><div style="display:none">214</div><span></span><span class="XUdT">.</span><span class="R_Ad">18</span><div style="display:none">18</div><span class="xn4v">125</span><span class="R_Ad">136</span><div style="display:none">136</div><span style="display:none">180</span><div style="display:none">180</div><span style="display:none">209</span><span class="xn4v">209</span><div style="display:none">209</div><span style="display:none">218</span><span class="WJIS">218</span><div style="display:none">218</div><span style="display: inline">251</span><span class="27">.</span><span class="Qp8o">6</span><span style="display:none">25</span><span style="display:none">40</span><span class="WJIS">40</span><span class="Qp8o">54</span><div style="display:none">54</div><span class="Qp8o">57</span><span style="display:none">71</span><span class="WJIS">71</span><div style="display:none">71</div><span style="display:none">80</span><span style="display:none">114</span><span class="WJIS">114</span><div style="display:none">114</div><span style="display:none">130</span><div style="display:none">130</div><div style="display:none">134</div><span class="143">150</span><div style="display:none">175</div><span style="display:none">188</span><div style="display:none">188</div><span></span><span></span><span class="122">.</span><span class="WJIS">3</span><span></span><div style="display:none">9</div><span class="Qp8o">152</span><div style="display:none">152</div><span class="30">200</span></span></td>


    البته سایر فیلدهای ip دارای الگوهای متغیر دیگری هستند و این کار را کمی مشکل میکند ولی وقتی مرورگر میتواند به راحتی صفحه را رندر کند پس من هم میتوانم.یک تابع کوچک ۴ فیلد مورد نظر من را استخراج میکند(ip-port-country-type) :

    function parse_ip_port()
    {
    maingrepstr="((span|div|style|class=\"[0-9]+\"|display:[ ]?inline\")>\.?[0-9]+\.?[0-9]*<)"
    grepstr="$maingrepstr"
    unset temparray
    temparray=(`grep -En '^\..*' $rand_file_name | cut -d ':' -f 1`)
    for i in `seq 0 $((${#temparray[@]}-2))`;
    do
    unset tempstr
    linenum="${temparray[$i]}"
    tempstr="`sed -n "${linenum}p" "$rand_file_name" | grep '{display:inline}' | grep -Eo '^\.[^{]+' | cut -c 2- | tr -d '\n'`"
    if [ -n "$tempstr" ];then
    grepstr="$grepstr|(class=\"$tempstr\">\.?[0-9]+\.?[0-9]*<)"
    fi
    if [ "${linenum}" -eq "$((${temparray[$i+1]}-1))" ];then
    continue
    else
    offset=$((${temparray[$i+1]}-1))
    echo "`sed -n "${linenum},${offset}p" "$rand_file_name" | grep -Eo "$grepstr"| grep -Eo '(^\.?[0-9]+\.?[0-9]*)|(>[\.]?[0-9]+[\.]?[0-9]*<)' | grep -Eo '[0-9]+' | tr '\n' '.' | sed 's/\.$//'`:`sed -n "${linenum},${offset}p" "$rand_file_name" | grep -Eo '^[0-9]+' | head -n 1`:`sed -n "${linenum},${offset}p" "$rand_file_name" | grep -Eo '>.*</span>' | grep -Eo '> .*<' | grep -Eo '[^>].*[^<]' | cut -c 2-`:`sed -n "${linenum},${offset}p" "$rand_file_name" |grep -Eio '<td>(HTTP|HTTPS|socks.*)</td>' | grep -Eo '>[^<]+' | cut -c 2-`" >>$rand_file_pages
    grepstr="$maingrepstr"
    fi
    done
    lastindex="$((${#temparray[@]}-1))"
    tempstr="`sed -n "${temparray[$lastindex]}p" "$rand_file_name" | grep '{display:inline}' | grep -Eo '^\.[^{]+' | cut -c 2- | tr -d '\n'`"
    if [ -n "$tempstr" ];then
    grepstr="$grepstr|(class=\"$tempstr\">\.?[0-9]+\.?[0-9]*<)"
    fi
    echo "`sed -n "${temparray[$lastindex]},$((${temparray[$lastindex]}+25))p" "$rand_file_name" | grep -Eo "$grepstr"| grep -Eo '(^\.?[0-9]+\.?[0-9]*)|(>[\.]?[0-9]+[\.]?[0-9]*<)' | grep -Eo '[0-9]+' | tr '\n' '.' | sed 's/\.$//'`:`sed -n "${temparray[$lastindex]},$((${temparray[$lastindex]}+25))p" "$rand_file_name" | grep -Eo '^[0-9]+' | head -n 1`:`sed -n "${temparray[$lastindex]},$((${temparray[$lastindex]}+25))p" "$rand_file_name" | grep -Eo '>.*</span>' | grep -Eo '> .*<' | grep -Eo '[^>].*[^<]' | cut -c 2-`:`sed -n "${temparray[$lastindex]},$((${temparray[$lastindex]}+25))p" "$rand_file_name" | grep -Eio '<td>(HTTP|HTTPS|socks.*)</td>' | grep -Eo '>[^<]+' | cut -c 2-`" >>$rand_file_pages
    return
    }

    متغیر $rand_file_name فایل html دانلود شده است که باید پردازش شود.نتایج حاصل از پردازش در $rand_file_pages قرار میگیرند.برای امتحان صفحه http://www.hidemyass.com/proxy-list/1 را از طریق قند شکن دانلود کنید و با انتساب ۲ فایل ورودی و خروجی به ۲ متغیر ذکر شده این تابع را آزمایش کنید.
    آشنایی با sed,grep و سینتکس regex و چندین خاصیت مهم bash میتواند حاصل این تمرین باشد.میتوانید از awk به جای sed و grep استفاده کنید.در برخی دیگر از صفحات web متغیرهای جاوا اسکریپت جایگزین تعریف استایلهای نظیر
    .xn4v{display:none}

    میشوند اما پردازش آن نیز ساده است.
    میدانم که کد بالا یک کد اسپاگتی است.اما بسیار کوتاه است و معنی و مفهوم آن برای کسی که از regex سر در بیاورد راحت است.
    کد هر سایتی به مرور زمان ممکن است تغیییر کند که ممکن است نیاز به تغییراتی در تابع باشد.

  13. #93

    چه کاربری لاگین کرده

    من اسکریپتی دارم به صورت یه cronjob با مجوز ریشه اجرا میشه اما لاگین من به صورت یه کاربر معمولیه.میخوام این اسکریپت log فایل خودشو در دسکتاپ کاربر لاگین کرده قرار بده و نه کاربر ریشه.طبیعتا نمیتونم از مقدار متغیرهایی نظیر USER یا USERNAME یا LOGNAME استفاده کنم.راه حل استفاده از دستور who هست.نمیدونم سینتکس دستور درسته یا نه ولی در همه حالاتی که در دو لینوکس فدورا و دبیان 7 امتحان کردم چه با لاگین کاربر عادی یا ریشه درست جواب داده.

    current_logged_user="`who | grep -v root | head -n 1 | cut -d " " -f1 | tr -d '\n'`" #${MAIL##*/}
    [[ -z "${current_logged_user}" ]] && current_logged_user="$USER"


    به جای grep -v root میشه از
    grep ' :0 '

    استفاده کرد به شرط آنکه کاربر فقط از طریق دسکتاپ لاگین کنه و از محیط ترمینال برای اجرای اسکریپت استفاده نکنه.تمام تلاش من اینه که هر اسکریپتی مینویسم تا حد امکان پرتابل باشه.به خاطر اینه که گاهی به نظر میرسه لقمه رو دور سر میچرخونم.
    اگر کسی سینتکس بهتر یا دستور دیگه ای سراغ داره لطفا راهنمایی کنه.

  14. #94
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    به جای `` بهتر هست که از $() استفاده کنید.خطا موقع نوشتن کمتره.

  15. #95

    دانلود منیجر

    دنیای نرم افزارهای آزاد تا حالا نتونسته دانلود منیجری به قدرتمندی IDM ویندوز بوجود بیاره.
    در محیط گرافیکی flareget رقیبی نداره.jdownloader با وجود قدیمی بودنش خیلی خوبه.
    در محیط متنی wget بابابزرگ حساب میشه و curl یه دانلود منیجر بسیار حرفه ای تر به شمار میاد اما سریعترین دانلود منیجر بی شک axel هست.
    اما تمام این دانلود منیجرها باید بزنن بغل وقتی aria2 میاد وسط.aria2 سریعترین نیست ولی منعطفترین و قدرتمندترین دانلود منیجر تحت خط فرمان هست.از پروتوکولهای مرسوم دانلود پشتیبانی میکنه و چند بندیه و ...
    فقط ۲ تا مشکل هست.خیلی از سایتهای دانلودی(http)از مکانیزم کوکی یا ارجاع استفاده میکنند و اگر دانلودری نتونه این دو مکانیزم رو ساپورت کنه نمیتونه از یه سری سایتها دانلود کنه.
    برای اولی aria2 آپشن load-cookies رو داره که به صورت عمومی اعمال میشه.برای دومی هم آپشن referer رو داره که البته باید با آپشن parameterized-uri توامان باشه.
    من از یه لیست دانلودی استفاده میکنم که کلیه URL ها به همراه آپشن ارجاع و در صورت وجود سایر URI های اون لینک دانلود در اون قرار داره با دستور زیر :
    /usr/local/bin/aria2c --input-file=/home/ahmad/Desktop/downlist.txt --log=/home/ahmad/Desktop/aria2.log --log-level=notice --retry-wait=1 --max-tries=0 --max-concurrent-downloads=2 --split=4 --max-connection-per-server=1 --connect-timeout=600 --enable-dht --stop=$((28500-((`date +"%H"`*60*60)+(`date +"%M"`*60)))) --file-allocation=prealloc --parameterized-uri=true --check-certificate=false --check-integrity=true --dir=/big-download --load-cookies=`{ \cp -f $(find "$HOME" -name "cookies.sqlite" 2> /dev/null | grep "mozilla") /tmp;echo /tmp/cookies.sqlite; }`

    نکات مربوط به دستور بالا:
    آپشن ارجاع در فایل downlist.txt مربوط به هر لینک دانلود قرار داره و آپشن عمومی نیست.
    همزمان ۲ فایل دانلود میشن اما در زمان واحد صرفا یک کانکشن به یک سرور خاص مجازه و کانکشنها حداکثر از ۴ بند استفاده میکنند.
    من معمولا از یه cronjob برای دانلود استفاده میکنم که در ساعت 1:02 بامداد شروع میشه.زمان پایان دانلود رو خود دانلود منیجر تعیین میکنه.(در آپشن stop).قبلا مقدار این آپشن به صورت ثابت بود اما حالا اون رو متغیر کردم.چون گاهی دانلود به صورت cronjob اجرا نمیشه و با تاخیر به صورت فرمان مستقیم اجرا میشه.در هر حال در ساعت 7:55 باید دانلود قطع بشه.
    --stop=$((28500-((`date +"%H"`*60*60)+(`date +"%M"`*60))))

    دستور بالا تعداد ثانیه های باقیمانده تا 7:55 دقیقه رو به آپشن stop میفرسته.
    من از مرورگر Mozilla FireFox استفاده میکنم.دستور
    --load-cookies=`{ \cp -f $(find "$HOME" -name "cookies.sqlite" 2> /dev/null | grep "mozilla") /tmp;echo /tmp/cookies.sqlite; }`

    فایل دیتابیس کوکیهای فایرفاکس رو به پوشه /tmp کپی و مسیر فایل رو به آپشن load-cookies میفرسته.
    حالا چرا کپی کنیم و از خود فایل استفاده نکنیم؟چون اگر فایرفاکس در حال اجرا باشه فایلهای دیتابیسش رو قفل میکنه

  16. #96

    مشکل به هم ریختن ساعت در مولتی بوت ویندوز و لینوکس

    من دو لینوکس پس از ویندوز روی سیستم حقیقی نصب کردم.ابتدا فدورا که سیستم عامل اصلی کامپیوتر من است و سپس دبیان ۷.به محض بوت ویندوز با مشکل به هم ریختن ساعت سیستم مواجه میشدم و در سوییچ کردنهای بعدی بین لینوکس و ویندوز تکرار میشد.راه حل عمومی آن به صورت زیر است‌:
    با دستور tzselect ناحیه زمانی مناسب را انتخاب کنید(در صورتیکه قبلا انتخاب نکرده باشید)
    ابتدا با اتصال به سرور ntp ساعت سیستم را تنظیم کنید.از دستور ntpdate استفاده کنید.
    دستور زیر را اجرا کنید :
    hwclock --systohc

    در فایل etc/adjtime/ عبارت UTC را به LOCAL تغییر دهید.

  17. #97
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مشکل به هم ریختن ساعت در مولتی بوت ویندوز و لینوکس

    نقل قول نوشته شده توسط ahmad24shargh مشاهده تاپیک
    من دو لینوکس پس از ویندوز روی سیستم حقیقی نصب کردم.ابتدا فدورا که سیستم عامل اصلی کامپیوتر من است و سپس دبیان ۷.به محض بوت ویندوز با مشکل به هم ریختن ساعت سیستم مواجه میشدم و در سوییچ کردنهای بعدی بین لینوکس و ویندوز تکرار میشد.راه حل عمومی آن به صورت زیر است‌:
    با دستور tzselect ناحیه زمانی مناسب را انتخاب کنید(در صورتیکه قبلا انتخاب نکرده باشید)
    ابتدا با اتصال به سرور ntp ساعت سیستم را تنظیم کنید.از دستور ntpdate استفاده کنید.
    دستور زیر را اجرا کنید :
    hwclock --systohc

    در فایل etc/adjtime/ عبارت UTC را به LOCAL تغییر دهید.
    البته به صرفه تر هست که وقتی دو تا لینوکس دارید در ویندوز تنظیم کنید: Hardware clock is in utc.من چون چند سال ویندوز نداشتم یادم نیست از کجا تنظیم میشه.

  18. #98

    نکاتی که من راجع به پرتابل بودن و بدون مشکل بودن اسکریپت bash آموختم.

    از آپشنهای عمومی و قدیمی تر به جای آپشنهای اختصاصی و جدیدتر استفاده کنید.از آپشنهای deprecated استفاده نکنید.ورژنهای مختلفی از یک بسته ممکن است در سیستمهای متفاوت نصب باشند.به عنوان یک مثال برای خاموش کردن سیستم در فدورا 18 من از دستور
    /usr/sbin/shutdown -P now

    استفاده میکردم.اما در دبیان ۷ این دستور جواب نداد و به جای آپشن P از h استفاده کردم که در هر دو سیستم جواب میداد.

    اغلب اوقات از مسیر کامل دستور مورد نظر استفاده کنید.مثلا به جای shutdown از usr/sbin/shutdown/ استفاده کنید.زیرا به هر دلیل ممکن است متغیر PATH به درستی تنظیم نشده باشد.به عنوان مثالی دیگر من نرم افزار wxHexEditor را کامپایل و نصب کرده ام.اگر نام آن را به تنهایی در خط فرمان بنویسم اجرا میشود و نیازی به ذکر مسیر نیست ولی در دستور sudo ننوشتن مسیر باعث شکست در اجرای این دستور میشود.

    همیشه وجود فاصله در مسیر یا حاصل عبارات را در نظر بگیرید.این مورد میتواند بسیار جدی باشد.

    در حاصل عبارات که مورد مقایسه قرار میگیرد یا به یک متغیر منتسب میشود کاراکتر احتمالی نوسطر را با دستور
    tr -d '\n'

    حذف کنید.وجود این کاراکتر باعث رفتار غیر منتظره اسکریپت میشود.

    تا حد امکان از متغیرها به جای ثوابت استفاده کنید.مثلا من در اسکریتی که برای مدیریت کانکشن اینترنتی استفاده میکنم به جای نوشتن ۲ انتساب زیر :
    con_uuid=977c7b23-d2de-41c5-9275-12c713964393
    my_con_str=802-3-ethernet

    که برای اجرای اسکریپت نیاز دارم این دو متغیر را به طریق زیر محاسبه میکنم :
    my_real_connection_type=`nmcli -t -f TYPE con 2>/dev/null | grep -Ei "ppp[a-z]*" | head -n 1 | tr -d '\n'`
    if [ -z "${my_real_connection_type}" ];then
    my_real_connection_type=`nmcli -t -f TYPE con 2>/dev/null | grep -Ei "ppp*" | head -n 1 | tr -d '\n'`
    fi
    my_con_str=`nmcli -t -f TYPE dev | head -n 1 | tr -d '\n'`
    if [ -z "$my_con_str" ];then
    echo -e "`date +"%A %d %B %Y %R"`\tFATAL ERROR. variable 'my_con_str' not set correctly" | tee -a "$logfile" 2> /dev/null
    exit 3
    fi
    con_uuid=`nmcli -t -f TYPE,UUID con | grep "${my_real_connection_type:-${my_con_str}}" | head -n 1 | cut -d ':' -f 2 | tr -d '\n'`
    if [ -z "$con_uuid" ];then
    echo -e "`date +"%A %d %B %Y %R"`\tFATAL ERROR. variable 'con_uuid' not set correctly" | tee -a "$logfile" 2> /dev/null
    exit 3
    fi
    fi


    کلیه خطاهای ممکن احتمالی را برسی کنید به خصوص زمانی که به فایل یا منبع خارجی نیاز دارید.من اسکریپتی دارم که کد اصلیش 60-70خطی بیشتر نیست ولی با مکانیزمهایی که گفتم میشه حدود 800 خط !!! اما پرتابل و متحمل خطا میشه.حتما exit code مناسب با خطا رو ست کنید و یه پیغام مناسب رو به خروجی مورد نظر بفرسته.

    اگر یه اسکریپت مفصل یا با احتمال خطای زیاد مینویسید تلاش کنید لاگ نویسی رو در اسکریپت تدارک ببینید.

    من عادت مستند کردن ندارم.ولی شما حتما خودتون عادت بدید.!!!عیب یابی یه کد حجیم یا پیچیده جوون رو پیر میکنه.(این نکات مربوط به برنامه نویسیه که با یه درجه تخفیف در مورد اسکریپتهای bash کاربرد داره)

    تا حد امکان از ویژگیهای درونی Bash بهره بگیرید.مثلا من میخوام نام کاربر رو از متغیر MAIL استخراج کنم:
    MAIL=/var/spool/mail/ahmad

    میتونم از دستورات خارجی نظیر cut بهره بگیرم یا از یوتیلیتی basename به صورت
    user=$(basename $MAIL)

    اما استفاده از دستورات خارجی بار پردازشی داره میتونم از خاصیت بسط پارامتر bash بهره بگیریم :
    user=${MAIL##*/}


    از دستورات عمومی تر استفاده کنید مثلا به جای awk از sed و grep استفاده کنید.

    در عبارات شرطی و مقایسه ای تدابیری اتخاذ کنید تا نوع عملوندها با عملگر متناسب باشد.مثلا عملگر eq- انتظار دارد دو عملوندش عدد صحیح باشند.حالا اگر یک عبارت را به جای یکی از عملوندها مینویسید و انتظار دارید خروجی عدد صحیح داشته باشد ممکن است خروجی یک رشته خطا باشد.در این حالت عملکرد اسکریپت نامشخص است.
    این چیزایی بود که به نظرم اومد.

  19. #99
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    user=${MAIL##*/}
    بلاخره یک چیز جدید پیدا کردم.
    ممکنه توضیح بدید این خط چکار میکنه؟
    مرسی.

  20. #100

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    بلاخره یک چیز جدید پیدا کردم.
    ممکنه توضیح بدید این خط چکار میکنه؟
    مرسی.
    اگر شما مستندات bash رو باز کنید یه سرفصل داره به نام Parameter Expansion
    ذیل اون :
    ${parameter#word}
    ${parameter##word}
    Remove matching prefix pattern. The word is expanded to produce a pattern just as in pathname
    expansion. If the pattern matches the beginning of the value of parameter, then the result of the
    expansion is the expanded value of parameter with the shortest matching pattern (the ``#'' case) or
    the longest matching pattern (the ``##'' case) deleted. If parameter is @ or *, the pattern removal
    operation is applied to each positional parameter in turn, and the expansion is the resultant list.
    If parameter is an array variable subscripted with @ or *, the pattern removal operation is applied
    to each member of the array in turn, and the expansion is the resultant list.

  21. #101

    بوت منیجر و سیستم مولتی بوت

    بزرگترین مشکل رایج کاربران لینوکس اینه که میخوان سیستم dual-boot یا مولتی بوت داشته باشند بوت صحیح سیستم و دسترسی به تمام سیستم عاملهای موجود بر روی کامپیوتر است.
    کاربران ایرانی کامپیوتر را با ویندوز فرا میگیرند و نمیتوانند ناگهانی از ویندوز جدا شوند.تا همین سالهای اخیر بیشتر سخت افزارهای بازار صرفا ویندوزی بودند و درایور یا راهنمایی برای لینوکس نداشتند.
    به جهت سازگاری و نیز برخی نرم افزارهای تجاری خاص(و صد البته بازیها) وجود ویندوز بر روی بسیاری از سیستمها حیاتی است.بیشتر وبسایتهای دولتی ایران با طراحی در پیتشان صرفا با مرورگر IE
    سازگاری دارند !! و ...
    نرم افزارهای ماشین مجازی هم کاربردهای خاص خودشان را دارند.نرم افزار wine هم محدودیتهای زیادی دارد و لینوکس ویندوز نمیشود.
    با هرگونه تغییر در ترتیب پارتیشنها یا فرمت کردن آنها یا نصب و حذف سیستم عاملها ترتیب بوت به هم میریزد و ممکن است یک سیستم عامل ار دسترس خارج شود.
    کسی که میخواهد کاربر لینوکس شود باید بداند کمی کوشش و تقلا لازم است و بدون سعی و تلاش نمیتوان کاربر لینوکس شد.در لینوکس برخلاف ویندوز همه چیز حاضر و آماده نیست(-)
    اما قابلیت سفارشی سازی و قدرت و اختیارات فراوانی نیز وجود دارد(+++...)
    شما باید به یک بوت منیجر همه کاره عادت کنید و با آن بتوانید تمام نیازهای خود را تامین کنید.هر سیستم عامل جدیدی که نصب میشود حق ندارد mbr و پارتیشن راه انداز را تغییر دهد و صرفا باید
    بوت منیجر خود را بر روی همان پارتیشنی که نصب میشود مستقر نماید.بوت منیجر همه کاره پس از نصب/حذف سیستم عامل با چند خط متنی تنظیم میشود تا سیستم عامل جدید را به لیست خود بیفزاید
    یا از آن کم کند.
    grub با قابلیتهایی که دارد به بوت منیجر اصلی لینوکس تبدیل شده.انشعاب خاصی از گراب به نام grub4dos که در سیستم عامل وبندوز قابل استفاده است(و لینوکس) از grub legacy منشعب شده ولی
    همانند grub2 ماژولار است.و میتواند انواع بسیاری از سیستم عاملهای متداول را مدیریت کند.

    GRUB4DOS, the top of boot loader in the world.


    در آدرس زیر میتوانید آنرا دانلود کنید(با قند شکن)

    http://code.google.com/p/grub4dos-chenall/downloads/list



    مستندات :


    http://reboot.pro/forum/66-grub4dos/
    http://www.rmprepusb.com/tutorials/grub4dos



    پیکر بندی هارد دیسک من بدین صورت است:درایو c راه انداز بوده که با فرمت ntfs و سکتور راه انداز آن مربوط به ویندوز xp است اما سیستم عاملی روی آن نصب نیست.ویندوز xp در کامپیوتر من نصب نیست !! اما هر زمان بخواهم با خیال راحت آن را بر روی ویندوز ۸ و ۲ لینوکس فعلی نصب میکنم !! من از grub4dos به عنوان بوت منیجر اصلی بهره میگیرم اما آن را بر روی کامپیوتر نصب نکرده ام !!!
    بوت منیجر ویندوز nt5(ویندوزهای 2000,xp و 2003) ntldr نام دارد و بوت منیجر ویستا و 7 و 8 bootmgr نام دارد که همگی در درایو c قرار دارند(ویندوزها بر روی هر پارتیشنی که باشند فرقی نمیکند، بوت منیجر باید بر روی پارتیشن راه انداز مستقر باشد).بوت منیجر لینوکسها grub2 است(عملا بایستی فایلی به نام core.img بارگذاری شود)
    سیستم عاملهای ویندوز باید صرفا توسط بوت منیجرشان یا توسط بوت سکتور پارتیشنی که در آن نصبند راه اندازی شوند.لینوکس هم به صورت مستقیم و هم توسط بوت منیجر راه اندازی میشود.البته میتوان توسط بوت سکتور هم آنرا راه اندازی کرد اما بوت سکتور در پارتیشنهای فعلی ext4 من به صورت یک فایل ۵۱۲ بایتی به نام boot.img موجود است(و نه بوت سکتور فیزیکی)
    من گفتم که grub4dos را در کامپیوترم نصب نکردم پس چطور از آن استفاده میکنم؟
    فایل بوت منیجر grub4dos دارای نام grldr است. من آن را به درایو c کپی کرده ام.کامپیوتر من توسط بوت منیجر xp یعنی فایل ntldr بوت میشود.فایل ntldr را به ontldr تغییر نام دادم و فایل grldr را به ntldr تغییر نام دادم.هر زمان که بخواهم ویندوز xp را بوت کنم صرفا فایل ontldr بارگذاری میشود.
    grub4dos دارای یک فایل پیکربندی به نام menu.lst است(البته وجود آن اختیاری است) محتویات این فایل در کامپیوتر من :



    #After Installing NVIDIA Edit /etc/modprobe.d/blacklist.conf
    #blacklist nouveau
    #then recreate initrd(initramfs)
    gfxmenu /SPLASH
    default 0
    timeout 5

    title Fedora 18
    root (hd0,1)
    kernel /boot/grub2/i386-pc/core.img

    title Debian 7.0.0
    root (hd0,5)
    kernel /boot/grub/core.img

    #title Fedora 18 Direct boot
    #root (hd0,1)
    #kernel /boot/vmlinuz-3.8.11-200.fc18.x86_64 root=UUID=0b4def03-4be6-4b34-929e-a27d264b12b2 ro rd.md=0 rd.lvm=0 rd.dm=0 rd.luks=0 vconsole.keymap=us rhgb quiet
    #initrd /boot/initramfs-3.8.11-200.fc18.x86_64.img

    #title exton-defender-64bit-Fedora
    #root (hd0,2)
    #kernel /boot/exton-fedora-64bit/isolinux/vmlinuz0 root=live:LABEL=root live_dir=/boot/exton-fedora-64bit/LiveOS rootfstype=auto persistent rw live-config.timezone=Asia/Tehran rd.live.image rd.live.overlay quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
    #initrd /boot/exton-fedora-64bit/isolinux/initrd0.img

    title Boot Win 8,7,vista
    chainloader /bootmgr

    title Boot Windows XP's
    chainloader /ontldr

    title commandline
    commandline

    title ShutDown
    halt


    تمام کاری که باید بکنید نوشتن یا بهتر بگویم کپی پیست کردن جند خط در فایل menu.lst است تا سیستم عامل جدید به سلامتی به منوی بوت اضافه یا حذف شود.
    من از طرح پارتیشن MBR استفاده میکنم و نه GPT(طرح GUID Partition Table) که توسط ویندوز ویستا به بعد متداول شد به جهت حفظ سازگاری.
    باوجود همه مزایایی که پارتیشنهای LVM لینوکس دارند صرفا آنها را با ext4 فرمت کنید فعلا از btrfs برای فرمت پارتیشنهای لینوکس استفاده نکنید به جهت حفظ سازگاری.
    لینوکس debian به سخت نصب شدن مشهور است من بدون تست آن در ماشین مجازی سریعا آن را نصب کردم و جالب آنکه نتوانستم بوت منیجر آن را روی هیچ پارتیشنی نصب کنم.در بوت بعدی با نوشتن چند دستور ساده در خط فرمان grub4dos آنرا بوت کردم و تنها پس از بوت بود که توانستم بوت منیجر آنرا نصب کنم.برای نصب آن هم از یک هارد اکسترنال که دارای یک پارتیشن ext4 بود استفاده کردم به این ترتیب که فایل ایزوی dvd نصب را به همراه ۲ فایل مخصوص نصب از روی هارد(hd-media vmlinz & initrd.img) به این پارتیشن کپی کردم و برای بوت آن از grub4dos استفاده کردم با دستور زیر :


    title Debian Installer(native_hd_media)
    find --set-root /debian-7.0.0-amd64-DVD-1.iso
    kernel /vmlinuz priority=low video=vesa:ywrap,mtrr vga=788 --
    initrd /initrd.gz



    واقعا grub4dos بین تمام boot manager ها همه کاره و آچار فرانسس.

  22. #102

    یه نقطه ضعف توی سیستم فایل ext4

    سیستم فایل ext4 عمده ترین سیستم فایل فعلی لینوکسه.یه نقطه ضعف بزرگ توش دیدم.نمیخوام بحث فنی کنم سر هم در نمیارم.
    من یه فایل ۴ گیگابایتی کپی کردم به یه پارتیشن ext4.با e4defrag اونو defrag کردم.
    بعد از مدتی لازم شد دوباره این فایل رو کپی کنم به اون پارتیشن.موجودی اون پارتیشن رو انتقال دادم به یه پوشه موقتی و اون رو با آپشن O extent- دوباره فرمت کردم.چیزی که توی خروجی دستور e4defrag توصیه شده بود.
    extent Instead  of  using  the indirect block scheme for storing the location of data blocks in an inode, use extents instead.  This is a much more effi‐cient encoding which speeds up filesystem access, especially for large files.

    پس از کپی فایل ۴ گیگابایتی به پارتیشن خالی با کمال تعجب این فایل یک تکه نبود!
    اینقدر عجیبه که به پیکربندی سیستم عامل خودم شک دارم.آیا این آپشن مقصره؟
    اگه کسی علتشو میدونه لطفا بگه

  23. #103

    نقل قول: یه نقطه ضعف توی سیستم فایل ext4

    نقل قول نوشته شده توسط ahmad24shargh مشاهده تاپیک
    سیستم فایل ext4 عمده ترین سیستم فایل فعلی لینوکسه.یه نقطه ضعف بزرگ توش دیدم.نمیخوام بحث فنی کنم سر هم در نمیارم.
    من یه فایل ۴ گیگابایتی کپی کردم به یه پارتیشن ext4.با e4defrag اونو defrag کردم.
    بعد از مدتی لازم شد دوباره این فایل رو کپی کنم به اون پارتیشن.موجودی اون پارتیشن رو انتقال دادم به یه پوشه موقتی و اون رو با آپشن O extent- دوباره فرمت کردم.چیزی که توی خروجی دستور e4defrag توصیه شده بود.
    extent Instead  of  using  the indirect block scheme for storing the location of data blocks in an inode, use extents instead.  This is a much more effi‐cient encoding which speeds up filesystem access, especially for large files.

    پس از کپی فایل ۴ گیگابایتی به پارتیشن خالی با کمال تعجب این فایل یک تکه نبود!
    اینقدر عجیبه که به پیکربندی سیستم عامل خودم شک دارم.آیا این آپشن مقصره؟
    اگه کسی علتشو میدونه لطفا بگه
    سیستم فایلهای یونیکس مثل UFS, Ext2,3,4 , ZFS و امثالهم ، نیازی به دفرگ ندارند. دفرگ کردن کارتون رو خراب کرده :)

  24. #104
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: یه نقطه ضعف توی سیستم فایل ext4

    نقل قول نوشته شده توسط ahmad24shargh مشاهده تاپیک
    سیستم فایل ext4 عمده ترین سیستم فایل فعلی لینوکسه.یه نقطه ضعف بزرگ توش دیدم.نمیخوام بحث فنی کنم سر هم در نمیارم.
    من یه فایل ۴ گیگابایتی کپی کردم به یه پارتیشن ext4.با e4defrag اونو defrag کردم.
    بعد از مدتی لازم شد دوباره این فایل رو کپی کنم به اون پارتیشن.موجودی اون پارتیشن رو انتقال دادم به یه پوشه موقتی و اون رو با آپشن O extent- دوباره فرمت کردم.چیزی که توی خروجی دستور e4defrag توصیه شده بود.
    extent Instead  of  using  the indirect block scheme for storing the location of data blocks in an inode, use extents instead.  This is a much more effi‐cient encoding which speeds up filesystem access, especially for large files.

    پس از کپی فایل ۴ گیگابایتی به پارتیشن خالی با کمال تعجب این فایل یک تکه نبود!
    اینقدر عجیبه که به پیکربندی سیستم عامل خودم شک دارم.آیا این آپشن مقصره؟
    اگه کسی علتشو میدونه لطفا بگه
    http://computer-forensics.sans.org/b...-large-extents
    پاراگراف دوم

    من خودم الان از xfs برای همه چیز و zfs برای فایل های مهم استفاده میکنم.
    و فقط برای boot از ext4 استفاده میکنم برای همین الان چیزی دم دست ندارم که باهاش تست کنم.

    defrag کلا در لینوکس کار اشتباهی هست.همین ۱۰ ۱۵ روز پیش داشتم یک مقاله میخوندم و به سرم زد که همه ی xfs هام رو defrag کنم.
    زمان اجرای iceweasel رو از 1.4 ثانیه رسوند به بالای ۵ توی سیستم من.البته boot رو سریعتر کرد.ولی پشیمونم و فایده نداره.

  25. #105

    نقل قول: یه نقطه ضعف توی سیستم فایل ext4

    من تو پستهای قبلی گفتم از بوت منیجر grub4dos استفاده میکنم.این بوت منیجر فایلهای iso رو به یه درایو نگاشت میکنه و از اون به بعد میتونید از اون درایو استفاده کنید.توی بسیاری از Boot Disk ها این خاصیت واقعا مورد نیازه.من میخواستم فایل iso دی وی دی دبیان ۷ رو به همین صورت استفاده کنم.
    دستور map که برای این عمل استفاده میشه 2 حالت داره.یا باید فایل مورد نظر یک تکه باشه تا بتونه مستقیما اونو نگاشت کنه.یا با آپشن mem-- کل اونو به حافظه اصلی بار کنه و ...
    به خاطر حجم زیادش نمیخواستم اونو به حافظه لود کنم.حتی بعد از defrag هم با اروری از سوی دستور map روبروشدم که تعجب کردم ولی وقتی اون مقاله رو که FastCode عزیز معرفی کرده بود خوندم متوجه قضیه شدم.در هر حال من در مورد درایوهای اصلی نه دیفرگ میکنم نه چک دیسک.لینوکس خودش یه درستی تشخیص میده کی باید پارتیشنها رو چک کنه و خواندن و نوشتن اطلاعات در لینوکس امنیت بسیار بالایی داره.

  26. #106
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    من برای این موارد معمولا از یک پارتیشن جدا استفاده میکنم و image رو با dd میریزم توش و بقیه داستان

  27. #107

    نقل قول: چیزهای تازه ای که هر روز یاد میگیرم.

    من از ویندوز استفاده میکردم تا این که بالاخره تصمیم گرفتم به لینوکس مهاجرت کنم.در کنار ویندوز لینوکس فدورا رو نصب کردم و چند تا دیسترویه دیگه رو هم تست کردم تا اینکه بالاخره ویندوز رو پاک کردم و کاملا به لینوکس عادت کردم.
    نصب و تست دیستروهای مختلف بارها منو به تغییر وضعیت پارتیشنها مجبور کرد.از اونجایی که یه کامپیوتر BIOS-Based دارم طبیعتا از طرح Intel-PC یا همون MBR برای پارتیشن بندی به صورت پیشفرض استفاده میکردم.اما مشکلی که mbr ایجاد میکنه اینه که هارد فقط میتونه شامل 4 تا پارتیشن primary باشه و هر دستکاری فقط تو پارتیشنهای logical بی دردسره.این محدودیت به شدت آزاردهنده بود تا اینکه با gdisk طرح پارتیشن رو به pure gpt تغییر دادم(غیر مخرب).2 مگابایت در ابتدی هارد به صورت فرمت نشده با پرچم bios_grub و بقیه پارتیشنها ... بدون اینکه اطلاعات فعلی از دست برند.


    Partition Table: gpt
    Disk Flags:

    Number Start End Size File system Name Flags
    1 17.4kB 2097kB 2080kB bios_grub bios_grub
    2 2097kB 841MB 839MB fat32 boot Drive boot, legacy_boot
    3 841MB 10.5GB 9664MB ntfs Reserved
    4 10.5GB 68.2GB 57.6GB ext4 Fedora
    68.2GB 68.2GB 5120B Free Space
    5 68.2GB 109GB 40.8GB FreeBSD root
    6 109GB 112GB 3221MB FreeBSD home
    112GB 112GB 2048B Free Space
    7 112GB 133GB 21.0GB xfs Arch root
    8 133GB 154GB 21.0GB ntfs Programming & Storage
    154GB 154GB 2097kB Free Space
    9 154GB 175GB 21.0GB ntfs My Documents
    10 175GB 191GB 15.7GB xfs Arch var
    11 191GB 200GB 9437MB xfs Arch home
    12 200GB 224GB 24.1GB ext4 Debian
    13 224GB 250GB 25.7GB ntfs Windows
    250GB 250GB 172kB Free Space


    من FreeBSD هم نصب دارم که همونطور که میدونید مثل LVM لینوکس یه جور طرح پارتیشن منطقی داره به نام BSD DiskLabel یا همون Slice ها.چیزی که نمیدونستم این بود که باید این BSD Slice ها رو به طور جداگانه با همون gdisk تبدیل کنم به gpt primary partition که پس از مدتی ولگردی تو وب بالاخره متوجه شدم.
    پس از تبدیل MBR به GPT هارد دیگه قابلیت بوت نداره.با یه هارد اکسترنال live دوباره گراب رو نصب کردم.با chroot کردن هم فایلهای fstab رو اصلاح کردم.حالا با خیال راحت هر تغییری بخوام تو پارتیشنها ایجاد میکنم.
    من یه پرینتر canon دارم که قبلا تو فدورا 18 نصب و استفاده کرده بودم.چون نتونستم فدورا 18 رو به 19 ارتقا بدم ناچارا فدورا 18 رو پاک و 19 رو Fresh Install کردم.اما دیگه به هیچ نحوی نتونستم پرینتر رو استفاده کنم(با وجود موجود بودن درایور و ...) به شدت هم به پرینتر نیاز پیدا کرده بودم تصمیم گرفتم ویندوز 8 رو نصب کنم تا فعلا بتونم از پرینتر استفاده کنم تا بعدا مشکلمو با لینوکس حل کنم.میدونستم ویندوز xp روی gpt نصب نمیشه.با خیال راحت نصب ویندوز 8 رو آغاز کردم اما هیچ رقم نصب نمیشد !!!
    با اعصاب خوردی شروع کردم به وبگردی ببینم باید چه کنم.
    تا اینکه متوجه شده باید از MBR-Hybrid استفاده کنم.با هموم gdisk طرح MBR-Protective رو تبدیل کرپم.در اینحالت کل هارد شما یه پارتیشن gpt از نوع primary میشه و شما میتونید تا 3 پارتیشن رو به طرح mbr اضافه کنید.
    پس از نصب ویندوز 8 کامپیوتر مستقیما با ویندوز بالا میاد.مجددا با رسانه live گراب رو نصب کردم و یه گزینه برای بوت ویندوز به گراب منو اضافه کردم.توی ویندوز دسترسی مستقیم به پارتیشنهای gpt نیست. و کل فضای قبل از اولین پارتیشن mbr-hybrd شده به صورت یک پارتیشن یک تکه gpt نمایش داده میشه(تو Disk Management) اگر پارتیشن gpt در لابلای 3 پارتیشن تبدیل شده موجود باشه به صورت UnAllocated نمایش داده میشه(این وضعیت اسفبار !!! از مایکروسافت بعیده)
    من با نرم افزار winhex تو ویندوز هارد رو باز کردم.جالب این بود که طرح کامل پارتیشنها در داخل این نرم افزار نمایش داده میشد و در دسترس بود !!!

صفحه 3 از 3 اولاول 123

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •