লিনাক্স থেকে উইন্ডোজ বিভাজন ক্লোন করুন


13

সুতরাং আমি উইন্ডোজের জন্য একটি পার্টিশন এবং উবুন্টুর জন্য একটি এবং আরও একটি গিগাবাইট ইন্টেল এসএসডি পেয়েছি। উবুন্টু আমার প্রধান ওএস, উইন্ডোজ গেমিংয়ের জন্য। তবে এখন আমি ম্যাক ওএস এক্স ইনস্টল করতে চাইছি এবং আমি এটি এসএসডি-তে থাকা চাই, তাই আমি উইন্ডোজকে অন্য একটি ড্রাইভে নিয়ে যেতে চাইছি (পুরানো ১GB০ জিবি বহিরাগত যেটি আমি তার শেলটি বের করে দিয়েছি এবং হয়েছে) একটি পরীক্ষা ড্রাইভ হিসাবে ব্যবহার করে I

এটি সম্পর্কে সবচেয়ে ভাল উপায় কি? পার্টিশন ক্লোনিংয়ের জন্য কোনও ভাল সরঞ্জাম? আমি এটি জিজ্ঞাসা করছি কারণ গুগল আপনি যে ড্রাইভটি আসলে ব্যবহার করছেন / উবুন্টু ইনস্টল করেছেন তার ক্লোনিংয়ের বিষয়ে প্রচুর ফলাফল আনছে, আমাকে কী বলার অপেক্ষা রাখে না যে কীভাবে অন্য কোনও সম্পর্কযুক্ত স্থানে সম্পূর্ণ সম্পর্কযুক্ত পার্টিশনটিকে ক্লোন করতে হবে।

ওহ, এবং নতুন উইন্ডোজ পার্টিশনটি কি কোনও পূর্ব-ক্লোন পোস্ট ছাড়াই এটি চালাতে দেবে? এ সম্পর্কিত অন্য যে কোনও তথ্য প্রশংসিত হবে।

(আমি এটি করছি কারণ এক্সকোডে আমার পাগুলি পাওয়া দরকার, এবং আমার ম্যাকবুক প্রো ধীরে ধীরে মারা যাচ্ছে)।


ঠিক আছে, আপনার যা দরকার তা হ'ল সিএফডিস্ক এবং ডিডি । কিছুটা প্রশ্নবিদ্ধ একমাত্র জিনিসটি হ'ল বুট সেক্টর। উইন্ডোজ কোন সংস্করণ?
এক্সএক্সএল

উইন্ডোজ I. আমি মনে করি এটি ইনস্টল করা একটি রাজকীয় ব্যথা, কারণ কিছু বিভাজন সম্পর্কিত সমস্যার কারণে।
ফল্ট

আপনার কাছে কি ডাব্লু 7 ডিস্ক রয়েছে?
XXL

আমি এটি কোথায় রেখেছি তা সম্পূর্ণরূপে নিশ্চিত নয় তবে প্রয়োজনে আমি এটি খনন করতে পারি।
ফল্ট

উত্তর:


7

আপনাকে ডিডি সহ ২ টি পার্টিশন ক্লোন করতে হবে - বুটলোডার / বুটম্যানেজার যেখানে থাকে (ওএস চেইনলোড করার জন্য প্রয়োজনীয়) [ সিস্টেম সংরক্ষিত , সাধারণত ১০০ এম ] এবং অন্যটি হ'ল আসল ডাব্লু installation ইনস্টলেশন।

সিএফডিস্ক দিয়ে পার্টিশন টেবিলটি পরীক্ষা করে দেখুন - এটি আপনাকে ভিজ্যুয়াল উপস্থাপনা দেবে। তারপরে টার্গেট ড্রাইভের সমস্ত পার্টিশন মুছুন - সিএফডিস্ক আপনার বন্ধু।

ক্লোনিংয়ের সিনট্যাক্সটি এখানে উইকিতে পাওয়া যাবে । আপনার একটি যথাযথ এমবিআর প্রয়োজন হবে (এটি সম্ভবত আপনার টেস্ট ড্রাইভে উপস্থিত রয়েছে )।

আপনার সম্ভবত সম্ভবত [সিস্টেম সংরক্ষিত] পার্টিশনে বুট করার যোগ্য পতাকা বরাদ্দ করতে হবে (এটি প্রথমটি ক্লোন করা উচিত) - সিএফডি ডিস্ক এটি সম্পাদন করতে পারে।

যদি এটি ব্যর্থ হয় - কেবলমাত্র W7 ইনস্টলেশন ডিস্ক থেকে বুট করুন এবং ভিস্তার জন্য এখানে গাইডলাইনগুলি অনুসরণ করুন follow

আপডেট :

পুরো প্রক্রিয়াটির একটি গুরুত্বপূর্ণ অংশ উল্লেখ করতে ভুলে গেছেন যা সম্ভবত এতটা স্পষ্ট নাও হতে পারে। হয় আপনি মূল ড্রাইভ এবং ডিলিট সবকিছু কিন্তু আছে 2 উইন্ডোজ সংক্রান্ত পার্টিশন বন্ধ পার্টিশন টেবিল ক্লোন বা তাদের সঙ্গে পুনঃ থাকবে cfdisk / বিভক্ত সঙ্গে একই আকার।

এখানে কয়েকটি উদাহরণ রয়েছে (ধরে নিলে, এই এসডিএ আপনার উত্স ড্রাইভ এবং এসডিবি লক্ষ্যবস্তু):

ডিডি যদি = / dev / sda বিএস = 1 এড়িয়ে যান = 446 গণনা = 66 এর = / দেব / এসডিবি সন্ধান = 446 (এটি এমবিআর স্বাক্ষরের সাথে আউটপুট ড্রাইভে আপনার বর্তমান ডস পার্টিশন টেবিলটি কার্যকরভাবে ক্লোন করবে)

ডিডি যদি = / dev / sda বিএস = 1 এড়িয়ে যান = 440 গণনা = 72 এর = / দেব / এসডিবি সন্ধান = 440 (এটি ডিস্ক আইডিও অনুলিপি করে যা কখনও কখনও ব্যর্থ হলে বুট ব্যর্থ হতে পারে - তবে, এই জাতীয় ডিস্কগুলি না আইডি পরিবর্তন না হওয়া পর্যন্ত উইন্ডোজ পরিবেশে একসাথে কাজ করতে সক্ষম হবেন)

পার্টেড / ডেভ / এসডিএ ইউএসপি (আপনি সিএফডিस्क বা বিচ্ছিন্নভাবে চিহ্নিত করে লক্ষ্যবস্তুতে পরবর্তী প্রতিরূপের জন্য সোর্স ড্রাইভের সেক্টরে বর্তমান পার্টিশন টেবিল এবং আকারটি পরীক্ষা করতে পারেন )


এটি একটি বেদনা এবং সাধারণত বুট হয় না
সেপ্টেম্বর

কেন? বুট প্রক্রিয়াটিতে যদি সমস্যা হয় - ডাব্লু 7 ইনস্টল ডিস্ক থেকে একটি কমান্ড প্রম্পট সেশন ইনস্ট্যান্ট করে বুট্রেক / ফিক্সেম্বার , বুট্রে क / ফিক্সবুট বা বুট্রেक / পুনর্নির্মাণ বিসিডি সমস্যা সমাধান করতে সক্ষম হতে হবে।
XXL

যথেষ্ট ন্যায্য। অতীতে আমার পক্ষে এটি ব্যর্থ হয়েছিল। আমি নিশ্চিত যে কেন এই দুর্ঘটনা রোধে আমি ব্যবহারগুলি সম্পর্কে জানতে পেরেছি। এছাড়াও, পার্টিশনটি প্রতিলিপি করতে dd ব্যবহার করা কমপক্ষে খুব কার্যকর নয়

কারণ এটি একটি সেক্টর বাই সেক্টর অনুলিপি ব্যবহার করে এবং বরাদ্দকৃত ফাইল সিস্টেমে খালি স্থানের অনুলিপি করবে? আমি মনে করি, ওপিএস প্রসঙ্গে এটি সম্ভবত সম্পূর্ণ অপ্রাসঙ্গিক হতে চলেছে। আমরা এমনকি পার্টিশনটি পূর্ণ কিনা তাও জানি না, কম স্পষ্ট বিকল্প সমাধানের পরিবর্তে কয়েক মিনিট অপেক্ষা করার (সময়ের মধ্যে লাভটি ন্যূনতম হতে পারে) তার যত্ন নেওয়ার কথা উল্লেখ না করে
XXL

তবে এটির বিভিন্ন আকারের বিভাজনে অনুলিপি করতে সক্ষম হওয়ার স্বতন্ত্র সুবিধা রয়েছে। ডিডি ধরে ধরেছে যে গন্তব্যটি ঠিক একই আকারের (যদিও এটি বড় হতে পারে )। এটি একটি বাধা সমস্যা হতে পারে, বিশেষত যখন এসএসডি জড়িত থাকে (তারা 'সীমাহীন' সক্ষমতা নয়)
সেপ্টেম্বর

4

একটু দেখো

  • এনটিএফএসক্লোন (কেবলমাত্র ব্যবহারের ক্ষেত্রের অনুলিপিগুলি)
  • বুট তথ্য অফসেটগুলি ঠিক করার জন্য ফিক্সেন্টএফ.এস

আইআইআরসি, ট্রিনিটি রেসকিউ কিটটিতে প্রয়োজনীয় সফ্টওয়্যার পাশাপাশি আরও অনেকগুলি (এসএসএস, পার্টিম্যাজেশন, এফডিস্ক, এফডিস্ক, সিএফডিস্ক, পার্টড, জিপার্টেড, টেস্টডিস্ক, এনটিএফএসফিক্স; এনটিএফএস -3 জি মাউন্টিং, আরএসএনসি ইত্যাদি) রয়েছে।

/*
 * fixntfs: change some attributes of an NTFS bootsector
 *
 * brought to you by Phoenix
 * url: www.grhack.gr/phoenix
 * mail: phoenix@grhack.gr
 * irc: phoenix -> #grhack -> undernet
 */

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    FILE *fd;
    FILE *idfd;
    struct stat fst;
    unsigned char cab[32];
    unsigned short log_heads;
    unsigned short ntfs_heads;
    unsigned short force_heads;
    unsigned short ntfs_cab;
    unsigned long long sectors;
    unsigned long long new_sectors;

    log_heads = 0;
    ntfs_heads = 0;
    force_heads = 0;
    ntfs_cab = 0;

    if(argc < 2)
    {
        fprintf(stderr, "Usage:\n\t%s <device> <total_sectors> <force_heads>\n", argv[0]);
        exit(0);
    }

    fprintf(stderr, "Stating file %s... ", argv[1]);

    stat(argv[1], &fst);

    if(!S_ISBLK(fst.st_mode))
    {
        fprintf(stderr, "not a block device\n");
        exit(-1);
    }

    fprintf(stderr, "a block device\n");


    fprintf(stderr, "Opening device %s rw... ", argv[1]);

    fd = fopen(argv[1], "r+");

    if(!fd)
    {
        perror("open device");
        exit(-1);
    }

    fprintf(stderr, "ok\n");


    fprintf(stderr, "Checking partition... ");

    fseek(fd, 3, SEEK_SET);

    if(fread(cab, 1, 4, fd) != 4)
    {
        perror("read system_id");
        exit(-1);
    }

    cab[5] = 0;

    if(strncmp(cab, "NTFS", 4))
    {
        fprintf(stderr, "%s\n", cab);
        exit(-1);
    }

    fprintf(stderr, "%s\n", cab);


    fprintf(stderr, "Reading NTFS bootsector heads... ");

    fseek(fd, 0x1a, SEEK_SET);

    ntfs_heads = 0;

    fread(&ntfs_heads, 1, 2, fd);

    fprintf(stderr, "%u\n", ntfs_heads);


    fprintf(stderr, "Reading NTFS bootsector sectors... ");

    fseek(fd, 0x18, SEEK_SET);

    ntfs_cab = 0;

    fread(&ntfs_cab, 1, 2, fd);

    fprintf(stderr, "%u\n", ntfs_cab);


    fprintf(stderr, "Reading NTFS bootsector sectors_per_cluster... ");

    fseek(fd, 0x0d, SEEK_SET);

    ntfs_cab = 0;

    fread(&ntfs_cab, 1, 1, fd);

    fprintf(stderr, "%u\n", ntfs_cab);


    fprintf(stderr, "Reading NTFS bootsector sectors_size... ");

    fseek(fd, 0x0b, SEEK_SET);

    ntfs_cab = 0;

    fread(&ntfs_cab, 1, 2, fd);

    fprintf(stderr, "%u\n", ntfs_cab);


    fprintf(stderr, "Reading NTFS bootsector boot_loader_routine_jump... ");

    fseek(fd, 0, SEEK_SET);

    bzero(cab, sizeof(cab));

    fread(cab, 1, 3, fd);

    fprintf(stderr, "0x%x 0x%x 0x%x\n", cab[0], cab[1], cab[2]);

    fprintf(stderr, "Reading NTFS bootsector total_sectors... ");

    fseek(fd, 0x28, SEEK_SET);

    sectors = 0;

    fread(&sectors, 1, 8, fd);

    fprintf(stderr, "%Lu\n", sectors);


    fprintf(stderr, "Reading device logical heads... ");

    sprintf(cab, "/proc/ide/hd%c/geometry", *(strrchr(argv[1],'/') + 3));

    idfd = fopen(cab, "r");

    if(!idfd)
    {
        perror(cab);
        exit(-1);
    }

    fscanf(idfd, "%*s %*s\n");

    fscanf(idfd, "%*s %s\n", cab);

    *(strrchr(cab, '/')) = 0;

    log_heads = (unsigned short) atoi(strchr(cab, '/') + 1);

    fprintf(stderr, "%u\n", log_heads);

    if(argc == 4)
    {
        force_heads=atoi(argv[3]);
        fprintf(stderr, "Forcing heads to %u\n", force_heads);
        log_heads=force_heads;
    }

    if(fclose(fd) == EOF)
    {
        perror("close device");
        exit(-1);
    }

    if(log_heads != ntfs_heads)
    {
        fprintf(stderr, "Heads are different... Logical=%u NTFS=%u\n\n"
                "Update NTFS bootsector? (y/n) ",
                log_heads, ntfs_heads);

        if(getc(stdin) == 'y')
        {
            fd = fopen(argv[1], "r+");

            if(!fd)
            {
                perror("open device");
                exit(-1);
            }

            ntfs_heads = log_heads;

            fseek(fd, 0x1a, SEEK_SET);

            fwrite(&ntfs_heads, 1, 2, fd);


            fprintf(stderr, "\nBootsector updated... Verifying... ");

            fclose(fd);

            fd = fopen(argv[1], "r");

            if(!fd)
            {
                perror("open device");
                exit(-1);
            }

            fseek(fd, 0x1a, SEEK_SET);

            ntfs_heads = 0;

            fread(&ntfs_heads, 1, 2, fd);

            if(ntfs_heads == log_heads)
            {
                fprintf(stderr, "ok\n\n");
            }
            else
            {
                fprintf(stderr, "error [%u]\n", ntfs_heads);
                exit(-1);
            }
            fclose(fd);
        }
        else
        {
            fprintf(stderr, "\nHeads update cancelled...\n");
        }

        getc(stdin);
    }

    if(argc >= 3 && atoll(argv[2]))
    {
        fprintf(stderr, "Update NTFS bootsector total_sectors from %Lu to %Lu? (y/n) ",
                sectors, atoll(argv[2]));

        if(getc(stdin) == 'y')
        {
            fd = fopen(argv[1], "r+");

            if(!fd)
            {
                perror("open device");
                exit(-1);
            }

            new_sectors = atoll(argv[2]);

            fseek(fd, 0x28, SEEK_SET);

            fwrite(&new_sectors, 1, 8, fd);


            fprintf(stderr, "\nBootsector updated... Verifying... ");

            fclose(fd);

            fd = fopen(argv[1], "r");

            if(!fd)
            {
                perror("open device");
                exit(-1);
            }

            fseek(fd, 0x28, SEEK_SET);

            sectors = 0;

            fread(&sectors, 1, 8, fd);

            if(sectors == new_sectors)
            {
                fprintf(stderr, "ok\n\n");
            }
            else
            {
                fprintf(stderr, "error [%Lu]\n", sectors);
                exit(-1);
            }

            fclose(fd);
        }
        else
        {
            fprintf(stderr, "\nTotal_sectors update cancelled...\n");
        }
        getc(stdin);
    }

    return(1);
}

2

এই কীভাবে উইন্ডোজ ড্রাইভ ক্লোনিং জন্য আমার জন্য splendidly কাজ করেন। যেহেতু আমি প্রথমবারের মতো একটি নতুন হার্ড ড্রাইভে একটি উইন্ডোজ ইনস্টল স্থানান্তর করতে সক্ষম হয়েছি, পরবর্তী গুগলারের সাথে দেখার জন্য আমি এখানে আমার পদ্ধতিটি ভাগ করব procedure

আমার পরিস্থিতি:
ম্যানেজারের উইন্ডোজ 7 এক্স 64 এর 128 জি এসএসডি সর্বাধিক বাড়িয়েছে, তাই আমি একটি 240 জিবি প্রতিস্থাপন কিনেছি।

সমস্যা:
আমার কাছে দুটি সটা ড্রাইভ ডক রয়েছে তবে লিনাক্স একই সাথে উভয়কেই চিনতে পারে নি, তাদের মধ্যে একটি অনুলিপি প্রতিরোধ করে।

হার্ডওয়্যার:
আমি একটি দ্বৈত এনআইসি ফায়ারওয়াল স্থাপন করতে চলেছি, তাই আমি এই কম্পিউটারে উত্স এসএসডি ইনস্টল করেছি। গন্তব্য 240G এসএসডি বাহ্যিক ডকের মধ্যে চলে গেছে।

প্রক্রিয়া:
1) আমি যে প্রথম ইউএসবি স্টিকটি তুলেছিলাম তাতে লিনাক্স মিন্টের লাইভ সিডি ছিল যা /dev/sda1
2) "ওল্ড" 128 জি এসএসডি সনাক্ত হয়েছিল এবং হয়ে গিয়েছিল /dev/sdb1এবং /dev/sdb2
3) # fdisk -l /dev/sdbটিউটোরিয়ালটি থেকে ব্যবহার করে উত্স পার্টিশন উইন্ডোর তথ্যটি গেডিতে অনুলিপি করেছিল।
- দ্রষ্টব্য, টিউটোরিয়ালটিতে -uবিকল্পটি অন্তর্ভুক্ত রয়েছে , তবে আমার জন্য, fdisk ইতিমধ্যে ব্লকগুলি প্রদর্শন করেছে (পছন্দসই আউটপুট) যাতে সেই সুইচটি ভুল তথ্য দেয়।
৪) প্লাগ ইন করুন এবং গন্তব্য 240G এসএসডি সহ ড্রাইভ ডকটি চালু করুন যা হয়ে ওঠে /dev/sdc
5) বুট এবং সিস্টেম ফ্ল্যাগ সহ ঠিক মেলে fdisk /dev/sdcপার্টিশন তৈরি করতে ব্যবহার করুন । )) গন্তব্য ড্রাইভে এমবিআর অনুলিপি করতে। - গাইড এখন ব্যবহারের পরামর্শ দেয়/dev/sdc/dev/sdb
dd if=/dev/sdb of=/dev/sda bs=446 count=1
hdparmডিএমএ চালু করার জন্য, তবে কমান্ডটি আমার পক্ষে ব্যর্থ হয়েছে
7) ntfsclone -O /dev/sdc1 /dev/sdb1উইন্ডোজ লুকানো সিস্টেম পার্টিশনটি অনুলিপি করতে।
- -Oঅথবা --overwriteবিকল্পটি গন্তব্য সেট করার জন্য ব্যবহৃত হয়, কমান্ডটি পিছনের দিকে প্রদর্শিত হয়। লিনাক্স মিন্টের লাইভ সিডি-তে এনটিএফএসক্লোন থাকায় কুডোস, যেহেতু আমি এই কমান্ডটি আগে শুনিনি এবং নেটওয়ার্কে উঠতে হবে না।
8) ntfsclone -O /dev/sdc2 /dev/sdb2উইন্ডোজ "সি ড্রাইভ" অনুলিপি করতে ব্যবহার করুন । এটি সম্পূর্ণ হতে কয়েক বিয়ার লাগল।
9) পার্টিশনের আকার পরিবর্তন করার জন্য, আমি gparted
10 ব্যবহার করেছি ) উইন্ডোজ কম্পিউটারে নতুন এসএসডি পুনরায় ইনস্টল করেছি এবং এটি চেকডিস্ক চালায় (আমি টিউটোরিয়ালটি রেখে দিয়েছি এবং খেয়াল করিনি যে তিনি এটি করেন)।
11) উইন্ডোজ পুনরায় বুট করা হয়েছে এবং সবগুলি আবার স্বাভাবিক অবস্থায় ফিরে এসেছে তবে আরও মুক্ত স্থান সহ।


1
  1. আমি উবুন্টু অ্যাপ্লিকেশন মেনুতে " ডিস্কগুলি " অনুসন্ধান করেছি এবং ডিস্ক ইউটিলিটি অ্যাপ্লিকেশনটি খুললাম।
  2. আমি কপি করার জন্য পার্টিশনটি নির্বাচন করেছি। তারপরে সেটিংস আইকনটি ক্লিক করুন এবং " ডিস্ক চিত্র তৈরি করুন " নির্বাচন করুন
  3. পুনরুদ্ধার চিত্রটি তৈরি করতে কিছুক্ষণ সময় লাগবে ।
  4. পুনরুদ্ধার চিত্রটি তৈরি করা শেষ করার পরে আমি সেই পার্টিশনটি ক্লিক করেছিলাম যেখানে আমি পূর্ববর্তী পার্টিশনটি ক্লোন করতে চেয়েছিলাম
  5. তারপরে আবার সেটিংস আইকনটি ক্লিক করুন , এবং " ডিস্ক চিত্র পুনরুদ্ধার করুন " চয়ন করুন এবং পূর্ববর্তী উত্পন্ন ডিস্ক চিত্র ফাইলটি নির্বাচন করুন।
  6. তারপরে এটি শেষ হওয়ার অপেক্ষায় রইল।

আমি কেবল ডিস্ক ইউটিলিটি অ্যাপ্লিকেশনটি অনুসন্ধান করেছি এবং এটিই। আমি কিছু ইনস্টল না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.